天天看点

iconv的bug还是编码表问题?

[quote]1930%nbsp雪弗莱%nbsp无敌 [color=red]–[/color]%nbsp396大滑轮,350涡轮传送[/quote]

这样的一个字符串,在网页上用GB2312,可以正常的显示那个红色标示出来的横杠.

但是当我用这样的代码作编码转换时

[code]temp = Iconv.conv("UTF-8","gb2312",a)[/code]

提示这样的错误

[quote]new.rb:29:in `conv': "\250C%nbsp396\264\363\273\254\302\326"... (Iconv::IllegalSequence) [/quote]

但是改用gb18030做转换编码后,就不会出现任何错误。

[code]temp = Iconv.conv("UTF-8","gb18030",a)[/code]

按照iconv的提示红色横杠并存在于gb2312的编码表中.可是网页中又能够显示出来。

那么这个到底是gb2312编码表问题还是iconv的bug?

我越来越觉得 类似这类中文相关的编码问题,成了ruby 和ROR在国内应用上的一个硬伤了.中文编码问题如果不妥善解决,Ruby和ROR推广和应用始终有隐患存在.