Heim > Backend-Entwicklung > PHP-Tutorial > 新手转码问题

新手转码问题

WBOY
Freigeben: 2016-06-23 14:39:34
Original
958 Leute haben es durchsucht

	$url='test.txt';	$read = fopen($url,'r') or die('打开失败');	$text=fread($read,100);	fclose($read);	echo iconv('UTF-8','GBK','这是一个测试').'<br/>';#这句OK	echo iconv('UTF-8','GBK',$text).'<br/>';#这句报错
Nach dem Login kopieren


以上第一个echo正常,第二个echo就老是报以下错误:
 Notice: iconv(): Detected an illegal character in input string

test.txt文件为UTF-8格式。


回复讨论(解决方案)

你的文本内有超出gbk范围的字符

echo iconv('UTF-8','GBK//IGNORE',$text)
//IGNORE能忽略掉它不认识的字接着往下转不报错,//TRANSLIT是截掉它不认识的字及其后面的内容,报错

utf-8 的 三字节部分与 gbk 对等
但 utf-8 的二字节部分在 gbk 中无对应部分(不是全部)

第一种:iconv(“UTF-8″,”GB2312//IGNORE”,$data)  ;
第二种:$outstr = mb_convert_encoding($instr,'UTF-8','GBK',); 用iconv报错的话就用mb_convert_encoding函数这个函数字符集比iconv的广泛一般不会报iconv的错

echo iconv('UTF-8','GBK//IGNORE',$text)试试

感谢楼上各位,成功解决。

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage