我对perl中的unicode和unicode感到困惑。
我从MySQL db获得了这个哈希。
my $hashFromDB = { "Ves\x{101}kha" => "some value" };
但我只知道这种表示形式的关键
my $key = "Ves\u0101kha";
如何将\ uXXXX表示法转换为\ x {xxx},以便我可以使用键获取值。
感谢。
答案 0 :(得分:3)
\x{}
转义几乎与JS中的\u
转义完全相同。您只需使用{}
中的代码,就像在第一个代码段中一样:
my $key = "Ves\x{101}kha";
my $value = $hashFromDB->{$key};
如果你的文字字符串中包含\u
,我假设它意味着“\ u后跟4个十六进制数字来形成代码点编号”,只需用regexp预处理它,用真正的字符代替这些序列代码:
$key =~ s/\\u([a-fA-F0-9]{4})/chr(hex($1))/ge;
BTW,\u
在Perl中有不同的含义 - 它是下一个符号的upercases。你可以check complete list of escapes in documentation。