- 论坛徽章:
- 0
|
合并XML文件时要根据某些项的内容判断做对应的处理。但是这涉及到字符的编码问题,文件的编码是EUC-JP的,读出来的字符在perl中是UTF-8
的;在perl程序中定义的常量字符串是EUC-JP的,这样两者比较就不能得到正确的结果。我是把读出来的xml文件中的项的内容用Encode::
encode转变为EUC-JP的,然后比较,这样就会出现多次的转换,效率会出现问题。我刚开始想通过Encode::encode把常量字符串转变为
utf8的,但是打印出来的字符串没有改变;在比较的时候,如果被比较的是asc7的值,就会出现没有转换;如果被比较的是wide
character,则转变的字符又不对。
可以把常量字符串用Encode::from_to('euc-jp','utf8',$str)转变为utf8的。但是还是不行,然后在调用函数Encode::_utf8_on($str)打开perl的utf8开关。就可以了。
问题得到解决。实际这种办法在cpan官方文档中提到了,所以一定要看官方文档。
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/37325/showart_381732.html |
|