论坛首页 编程语言技术论坛

iconv的bug还是编码表问题?

浏览 6400 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-01-31  

引用
1930%nbsp雪弗莱%nbsp无敌 %nbsp396大滑轮,350涡轮传送


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

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

temp = Iconv.conv("UTF-8","gb2312",a)


提示这样的错误
引用
new.rb:29:in `conv': "\250C%nbsp396\264\363\273\254\302\326"... (Iconv::IllegalSequence) 


但是改用gb18030做转换编码后,就不会出现任何错误。
temp = Iconv.conv("UTF-8","gb18030",a)


按照iconv的提示红色横杠并存在于gb2312的编码表中.可是网页中又能够显示出来。
那么这个到底是gb2312编码表问题还是iconv的bug?

我越来越觉得 类似这类中文相关的编码问题,成了ruby 和ROR在国内应用上的一个硬伤了.中文编码问题如果不妥善解决,Ruby和ROR推广和应用始终有隐患存在.
   发表时间:2007-01-31  
这个,你的开发环境Windows是GB18030支持的吧,Iconv是调用操作系统本地库的,所以可能对你的操作系统编码支持比较敏感。其实Java的乱码问题照样到现在都存在,不过也没有影响到国际化问题。
0 请登录后投票
   发表时间:2007-01-31  
这类问题的存在就不得不去花一些时间去寻找替代方案。主要开发的精力也会因这些问题而分散。这类问题多了,也就敏捷不起来了
0 请登录后投票
   发表时间:2007-01-31  
我也遇到过类似的问题, 是在ubuntu下面发生的。
不过,偶不求甚解,没仔细追究,心里总觉得有些不爽。
0 请登录后投票
   发表时间:2007-01-31  
我也遇到过类似的问题,显示乱码在浏览器中又是正常的。

可能是因为浏览器本身的语言识别能力很强的缘故。
0 请登录后投票
   发表时间:2007-03-20  
不支持unicode绝对是硬伤。
0 请登录后投票
   发表时间:2007-03-23  
“网页上的GB2312”实际上是GBK。Iconv用的也不是Win32的API,是libiconv里的码表。
1 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics