Chinaunix

标题: unicode转中文的问题 [打印本页]

作者: 小公猫    时间: 2015-12-29 16:42
标题: unicode转中文的问题
  1. my $code="\x{5C0A}" ;
  2. print encode("gbk",$code);
复制代码
上面这个代码输出是正确的
下面这个为什么就不行呢?
  1. if ($str=~ /([0-9a-fA-F]{4})/)
  2. {
  3.    $code = "\\x{$1}";
  4. }
  5. print $code; #此处输出为\x{5C0A}
  6. print encode("gbk",$code); #这行输出也是\x{5C0A}
复制代码

作者: minirain    时间: 2015-12-29 17:25
  1. my $code="\x5C\x0A我是小张" ;
  2. encode("gbk",decode('utf8',$code)); #如果程序代码保存格式为utf8
  3. print $code ;#如果程序代码存储为gbk,直接打印
复制代码

作者: zhlong8    时间: 2015-12-29 20:28
写在源码里的那是语法啊,编译器帮你转换的,字符串那个是值,如果像你这样构造个字符串它给我转成别的东西了这语言还能用?

你需要的是 chr 数字转字符串(长度为1的字符串),hex / oct 把16 / 8 进制表示的字符串转成对应的数字,所以是 $code = chr hex $1;
作者: 小公猫    时间: 2015-12-29 21:49
回复 3# zhlong8


    不错!学习了!




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