Chinaunix

标题: 还是汉字编码问题 [打印本页]

作者: kejiake    时间: 2012-07-16 15:46
标题: 还是汉字编码问题
@a = qw(张 刘| 李| 王 珅);
foreach $b (@a) {
        $b =~ s/\|//g;
        print "$b\n";
}

最近在处理一个文件的时候,用户名很混乱,含有一些乱七八糟的字符,比如=,|,(,)等等。我的想法是将里面的|,这个符号全部删除。其他的字符就不管了。因为后续的处理要|做分隔符。代码如上,可处理到汉字"珅"的时候,就出现了乱码。不知道这种该怎么处理?求指点。
作者: nixiaoweihunter    时间: 2012-07-16 16:00
加上 use encoding "utf-8", STDOUT=>"GBK";
作者: linggang_123    时间: 2012-07-16 16:07
shell  不懂
作者: kejiake    时间: 2012-07-16 16:16
回复 2# nixiaoweihunter


    这个怎么加?没用过。谢谢。
作者: cdtits    时间: 2012-07-16 18:39
貌似正则这东西,还得具体问题具体分析。
很难做到适用于所有情况
作者: kejiake    时间: 2012-07-17 10:03
顶起,找人帮忙呀
作者: zhlong8    时间: 2012-07-17 10:49
Perl 默认字符串是 bytes 一个汉字会被当成多个字符,所以处理字符串往往不符合中文的语意,看下仙子关于编码的帖子吧。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2