讨论编码。

剑心永远OK 2008-12-19 11:32:12
最近搞一个功能,遇到了编码的问题。最后是解决了,但是对于编码有点迷惑了。大家讨论一下呗
简体编码:ASCII->GB2312B->GBK->GB18030 这是向下兼容的部分。
繁体编码:big-5

按道理来说,UTF-8是大过上面的字符集的。就意味着,上面的字符集都可以通过iconv进行转换为utf-8.但是测试的时候却不是想象中的结果

GB2312B->GBK->GB18030 通过iconv转换为utf-8正常

echo iconv("gbk","utf-8","大大"); #写入文件的时候显示正常,没有乱码


big5 通过转换则不正常

echo iconv("big5","UTF-8","愛"); #写入文件的时候显示没有。就是说不过去iconv没有进行转换


而不转换的话,直接写入的话,则一切都正常。究竟为什么会这样呢?

还有一个就是mb_detect_encoding检测的结果好象有问题似的。。
...全文
118 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
Zijian_Zhang 2008-12-19
  • 打赏
  • 举报
回复
[Quote=引用楼主 dada20042030 的帖子:]
最近搞一个功能,遇到了编码的问题。最后是解决了,但是对于编码有点迷惑了。大家讨论一下呗
简体编码:ASCII->GB2312B->GBK->GB18030 这是向下兼容的部分。
繁体编码:big-5

按道理来说,UTF-8是大过上面的字符集的。就意味着,上面的字符集都可以通过iconv进行转换为utf-8.但是测试的时候却不是想象中的结果

GB2312B->GBK->GB18030 通过iconv转换为utf-8正常
PHP codeechoiconv("gbk","utf-8","大大");#写入文件的时候显…
[/Quote]第二个繁体转简体,应该是文件的问题,你那个PHP文件是否是Big5编码的,如果不是,就可能在储存PHP代码后执行前的那个“愛”字没有正确储存,呵呵
fxs_2008 2008-12-19
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 yctin 的回复:]
echo iconv("big5","UTF-8","爱"); #写入文件的时候显示没有。就是说不过去iconv没有进行转换

这个是因为你在使用的php档案不是big5, 这个字是可以正常转换的

[/Quote]

正解了,首先如果文档不是big5,你那个是非法字符
mb_detect_encoding 不太会用,但检测除了这个好象没有别的办法

其他的,可以先检测文档本身的编码
yctin 2008-12-19
  • 打赏
  • 举报
回复
echo iconv("big5","UTF-8","爱"); #写入文件的时候显示没有。就是说不过去iconv没有进行转换

这个是因为你在使用的php档案不是big5, 这个字是可以正常转换的
程序猿之殇 2008-12-19
  • 打赏
  • 举报
回复
mb_detect_encoding
在中文日文韩文识别的时候会出现问题,以前做m2f的时候遇到过.后来不用这个函数了.
剑心永远OK 2008-12-19
  • 打赏
  • 举报
回复
不是麻烦不麻烦的问题,是编码是怎么走的。
dzxccsu 2008-12-19
  • 打赏
  • 举报
回复
这个编码是的,很麻烦,整个设计过程,编码统一的话,一般也不会有乱码的拉!
hqaht 2008-12-19
  • 打赏
  • 举报
回复
echo iconv("big5","UTF-8","愛"); #写入文件的时候显示没有。就是说不过去iconv没有进行转换

因为你的IDE是打开的支持的是默认GBK,上面的繁体爱字在你的页面里是预览时候是不能正常显示的
fxs_2008 2008-12-19
  • 打赏
  • 举报
回复
编码检测问题,至今没搞懂!楼主设计多语言系统,这问题就会多多了
wzwen 2008-12-19
  • 打赏
  • 举报
回复
该死的编码啊...
剑心永远OK 2008-12-19
  • 打赏
  • 举报
回复
最后发现是IDE的问题造成的。

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧