Perl unicode散列键查找

时间:2012-10-31 14:42:18

标签: perl unicode

我对perl中的unicode和unicode感到困惑。

我从MySQL db获得了这个哈希。

my $hashFromDB = { "Ves\x{101}kha" => "some value" };

但我只知道这种表示形式的关键

my $key = "Ves\u0101kha";

如何将\ uXXXX表示法转换为\ x {xxx},以便我可以使用键获取值。

感谢。

1 个答案:

答案 0 :(得分:3)

Perl中的

\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