$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/>';#这句报错你的文本内有超出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)试试
感谢楼上各位,成功解决。
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号