如何用 PHP 搞定中文字符编码问题

2015-03-05 17:49:52 +08:00
 Jack

主要功能是从压缩包中读取文本文件的部分内容

现在用PHP自带的函数已经可以做到从rar及zip压缩包中直接读取文件信息,也可以直接用zip_entry_read或fread读文本的内容,现在的问题是utf-8的页面读gbk文件,读出来也无法做任何转换可能了吧,试了些转换函数,无解。

所以唯一的办法还是把文件拿出来,整个都转了以后,读内容,然后再把文件删除这种办法了么

求解!

8353 次点击
所在节点    PHP
31 条回复
Jack
2015-03-05 23:33:30 +08:00
@kankana 同理。。你的代码搞不定我的搞定的,这函数还是有问题,我就是auto试过了不行才尝试的直接列出编码
Jack
2015-03-05 23:40:51 +08:00
@lk09364 能否直接贴出来代码,github 100次有99次读不出来
lk09364
2015-03-05 23:44:57 +08:00
river1007
2015-03-06 10:00:50 +08:00
页面中乱码? 设置下meta 的content charset?
Jack
2015-03-06 12:34:13 +08:00
@lk09364 感谢技术大神!小范围测试貌似没问题!
Jack
2015-03-06 15:17:21 +08:00
@lk09364 经测试还是有些问题,比如UTF8的“繁体”两个字会被判断成CP936然后直接就给转成乱码了。。。为何呢
lk09364
2015-03-06 17:33:24 +08:00
@Jack 对,字符数目不够的话容易出错。
比较长的字符,例如:『您好!繁体中文UTF-8 测试。都是M$的错,检测字符真的非常麻烦。』就没有问题。

所以这对于你来说问题应该不大。
Jack
2015-03-06 17:47:56 +08:00
@lk09364 我测试了下。。。这还不是长度问题,不知道方便与否加下我的QQ,在个人资料里有,我这儿10行的中英文混合UTF8字符串依旧认成了别的。无解啊
lk09364
2015-03-06 19:57:54 +08:00
@Jack 嗯……我说明的不太精确,应该是长字符比较容易出现高频词,所以容易辨别字符集。
不过这不代表短字符就不能判断,例如『检查』二字。

抱歉我很久没用QQ,请问有其他沟通的方法吗?例如 telegram @lk09364
Jack
2015-03-07 13:50:32 +08:00
@lk09364 跟你打招呼了不知是否收到?~ telegram @JackZhang
elvba
2015-11-12 10:32:59 +08:00
@lk09364
@kankana
@Jack
谢谢你们的讨论,碰到了同样的问题, mb_detect_encoding 这个函数不靠谱啊……
现在在用 @lk09364 给出最终方案,至少 UTF 系列的编码识别没问题了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/174737

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX