作者ponojames (无业网民)
看板Perl
标题Re: [问题] Unicode转字串
时间Thu May 15 13:29:20 2008
提供一下个人小小的浅见,请试试看:
chr(hex($array[0]));
因为chr()里面好像需要的是numeric,你给它的不是,所以会出不来XD
※ 引述《LinusChen (retreat)》之铭言:
感谢版友panppt的回答,
我在实做上有遇到一些应该是语法的问题
我会去parse一段资料
得到一堆16进位的unicode字串
像是汉堡 => 6F225821 这样的格式
我用版友panptt提供的方式 chr(0x6F22) chr(0x5821) 可以显示"汉堡"没错
但是当我要将阵列中的16进为值转中文的地方卡住了
我将得到的unicode->(6F225821) 切割後存入一阵列 @array
其中 $array[0]=6F22, $array[1]=5821
然後我就试看看 chr("0x$array[0]");
但是这语法似乎是错的
0x後面不能接阵列的样子
另外有别的语法像是 \x{6F22}
也不能使用 \x{$array[0]} 这样的语法
想请问语法该怎样写才对
※ 引述《panppt (哎咦哎咦呀...)》之铭言:
: 程式的开头记得加上这个!
: use encoding 'big5';
: $Data = "0x6F22";
: $StringData = chr($Data); # 转成字串
: print($StringData); # 这个会印出「汉」
: $Data = "0x5821";
: $StringData = chr($Data); # 转成字串
: print($StringData); # 这个会印出「堡」
: 这样子应该就可以了吧!
: ^^"
--
◆ From: 140.109.18.173
※ 编辑: LinusChen 来自: 140.109.18.173 (05/14 17:20)
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.31.149.22
1F:推 panppt:嗯嗯!只需要将 6F22 直接转成 16进制,就可以了!^^ 05/15 14:40
2F:推 LinusChen:万分感谢两位的帮助~~~ 05/16 02:55