如何在utf8字符里判断gbk或big5编码

但如果提交的数据$text不在gbk范围内的话decode gbk不是会出现乱码(问号)吗?
如何获取提交数据的呢?
就是一般的方法啊,在utf8页面有一个FORM,填写内容,post到另一个big5编码的cgi,cgi用CGI.pm的param接收。
无论简繁, decode gbk都行的, 只有遇到特殊字符如日韩希伯来语等才会挂

将utf8的内容post到big5编码的cgi ???


QUOTE:
原帖由 Lonki 于 2007-11-2 21:32 发表
无论简繁, decode gbk都行的, 只有遇到特殊字符如日韩希伯来语等才会挂

将utf8的内容post到big5编码的cgi ???

对啊,前面的帖子我就是担心这个啊,如果不是gbk也不是big5就不能decode gbk了。

是啊,将utf8 post到big5那个cgi,然后把这个utf8的内容转成big5,big5不能识别的就转成ucs,这样浏览器也能显示正常的字符。
既然来源是utf8, 那么就不用decode吧
就如同源文件是utf8格式, 只要use utf8; 那么变量默认即utf8
如果你是从页面获得的数据。那么你应该能规定传回来的是哪种格式的。比如GBK.
如果你还是无法判断是big5还是GBK的。那么可以参考:
http://bbs.lostcode.org/index.ph ... p;topic=9.msg9#msg9
这里介绍了如何判断是big5还是GBK还是utf8。希望能对你有所帮助。


QUOTE:
原帖由 freeand 于 2007-11-2 19:53 发表
又有一个问题,在utf-8页面提交过来的数据放到$text,如何将它分开,一个个检查啊,我用
my @text = split(//,$text);
foreach (@text) {}
发现全部是问号“?”啊
$text是utf-8格式的,不能直接用split分开 ...

先这样处理,再调用split函数就可以了
Encode::_utf8_on($text)