您好,欢迎访问一九零五行业门户网

新手转码问题

$url='test.txt'; $read = fopen($url,'r') or die('打开失败'); $text=fread($read,100); fclose($read); echo iconv('utf-8','gbk','这是一个测试').'
';#这句ok echo iconv('utf-8','gbk',$text).'
';#这句报错
以上第一个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)试试
感谢楼上各位,成功解决。
其它类似信息

推荐信息