严格来说,不好判断,但如下方法或许能给你应急处理。function is_utf8_encode($str, $flag=false){static $charset = null;if($charset == null){ //gbk中的汉字,但是满足utf-8的编码规范,对于这些汉字当做gbk字符处理$charstr = '陇搂篓掳卤路脳脿谩猫茅锚矛铆貌贸梅霉煤眉腻脓臎墨艅艌艒奴菐菒菕菙菛菢菤菧蓱伞艺藟藠藡藱螒螔螕螖螘螙螚螛螜螝蚂螠螡萤螣螤巍危韦违桅围唯惟伪尾纬未蔚味畏胃喂魏位渭谓尉慰蟺蚁蟽蟿蠀蠁蠂蠄蝇衼袗袘袙袚袛袝衮袟袠袡袣袥袦袧袨袩袪小孝校肖啸笑效楔些歇蝎鞋协挟携邪斜胁谐写械卸蟹懈泄泻谢屑薪芯锌褉褋褌褍褎褏褑褔褕褖褗褘褜褝褞褟褢';$charset = str_split($charstr, 2);$charset = array_flip($charset);}$pflag = true;$qflag = false;$len = strlen($str);
$utf8 = @preg_replace("/\\\u([0-9a-f]{4})/ie", "iconv('UTF-16BE', 'UTF-8', pack('H4','\\1'))", $str);
这种字符串是unicode编码的,而不是utf-8。json_decode()可以自动将json中的unicode字符串转换为utf-8。你可以自己构造一个json来实现。
12345<php$str = '\u5e7f\u4e1c\u6df1\u5733';$json = '{"foo":"' $str '"}';$d = json_decode($json, true);$str = $d['foo']; // 这个就是你想要的
望采纳!
rawurldecode
从 URL 专用格式字串还原成普通字串。
语法: string rawurldecode(string str);
传回值: 字串
函式种类: 编码处理
rawurlencode
将字串编码成 URL 专用格式。
语法: string rawurldecode(string str);
自己试下~~
1fgetc($fp) 取得是单字节的,中文可能的根据编码可能有2 3 4字节,所以不管怎么输出肯定都会是乱码。
解决方法
1修改php文件的编码为utf-8, 只有这样保存到testtxt文件里的文件才会是utf-8 大部分中文就都是按照3个字节
2$fp=fopen($filename,"r");
while(($char=fread($fp,3))!==''){
printf("%d%s",ftell($fp)/3,$char);
}
以上就是关于php 如何判断字符是否是utf8编码全部的内容,包括:php 如何判断字符是否是utf8编码、PHP从数据库获取的数据为\u5317\u4eac此类编码,怎么换成汉字、php里面怎样把utf-8编码的字符串 (如 \u5e7f), 重新解码成中文,多谢等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)