首頁 > 後端開發 > php教程 > 新手转码问题

新手转码问题

WBOY
發布: 2016-06-23 14:39:34
原創
957 人瀏覽過

	$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/>';#这句报错
登入後複製


以上第一个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)试试

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

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板