我打算從一個包含許多以「%xx」形式表示的unicode字符的網頁中提取內容。正如我使用Perl模塊LWP來獲取網頁,自然使用Perl Regex處理這些unicode字符如下。如何在HTML中使用Perl轉換字符「%xx」
my $html = "%20%26%40 ";
$html =~ s#%([0-9a-f]+)#\x{\1}#ig;
print "$html\n";
但上面的代碼不工作,它只輸出「00」。現在卡住... 任何提示將不勝感激。
感謝,葉
我打算從一個包含許多以「%xx」形式表示的unicode字符的網頁中提取內容。正如我使用Perl模塊LWP來獲取網頁,自然使用Perl Regex處理這些unicode字符如下。如何在HTML中使用Perl轉換字符「%xx」
my $html = "%20%26%40 ";
$html =~ s#%([0-9a-f]+)#\x{\1}#ig;
print "$html\n";
但上面的代碼不工作,它只輸出「00」。現在卡住... 任何提示將不勝感激。
感謝,葉
-1。我沒有看到這會有用。在對組件使用'uri_unescape'之前,你需要解析url - 你不能在整個url上使用'uri_unescape' - URL解析器應該爲你隱藏組件。 OP顯然不寫URL解析器(因爲他認爲他在處理HTML),所以你的建議會給出不正確的結果。 – ikegami
這是URI編碼,不是Unicode。 – Spudley
你確定'[0-9a-f] +'是否是正確的表達方式?每個令牌的URI編碼將始終有2個十六進制數字。所以'%2012'應該顯示爲'「12」',而不是'\ x {2012}'。 – mob
剛纔,添加了標籤URI。 – thinkhy