服务器端用php中读取一个文本文件内容,发送给客户端,需要发送UTF-8编码,但是读取的内容的编码不知道。需要先判断文本的编码格式吗?怎么判断?
使用 mb_convert_encoding($text, 'UTF-8','GB2312,UTF-8');这样对GB和UTF-8的没问题,但是其他编码可能还有问题。
另外php手册中有人这样用: iconv('', 'UTF-8', $str); 但是我试了不行。。
有什么比较简单的方法吗?大家指点一下.
另外各种文件编码 在PHP中的表示方式是什么?
这个很难吧?!
你说数字1,是属于什么字符集?一切皆有可能。
######你最好自己肉眼读一下服务器这段文本,将它放在浏览器里面读,用不同的编码试试,哪个显示正常,就是哪种编码了。
######你最好自己肉眼读一下服务器这段文本,将它放在浏览器里面读,用不同的编码试试,哪个显示正常,就是哪种编码了。
这样不行。让PHP自动判断编码格式,都转换成UTF-8的。搜到一个帖子,是通过判断文件头来判断编码,但是我觉得应该有更简单的方法。mb_convert_encoding($text, 'UTF-8','GB2312,UTF-8');这个函数基本实现了功能,但是有些编码如Unicode就会乱码 (用记事本保存时可以选,不知道是不是一种编码)。应该把尽量多的编码放到函数第三个参数上就可以吧。
######不知道文件头信息里面会不会有文件的编码方式的标记。
######不知道文件头信息里面会不会有文件的编码方式的标记。
utf-8好像有固定的文件头,别的不知道。
######回复的时候怎么出来个 {"id":10311,"post":256271957,"user":8876,"post_count":5}
红薯看一下问题。
######mb_convert_encoding用编码列表,一般ascii打头,GB2312、GBK、UTF-8基本够用了。
######编码的顺序是很有讲究的,如果编码是ascii的就不要转换
######
编码的顺序是很有讲究的,如果编码是ascii的就不要转换
也就是用 mb_convert_encoding($text, 'UTF-8','ascii,GB2312,gbk,UTF-8'); ?
第三个参数是文本的原编码,检测到与第二个参数相同时就不进行转码了?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。