我有一個編碼問題,並希望尋求幫助。我注意到如果我選擇「UTF-8」作爲編碼,那麼至少有兩個雙引號"
和「
。但是當我選擇「ISO-8859-1」作爲編碼時,我看到後面的雙引號變爲¡°
,或者有時例如“
。perl編碼問題
任何人都可以請解釋爲什麼這是這種情況?如何匹配「
並用perge中的正則表達式替換爲"
?
非常感謝。
我有一個編碼問題,並希望尋求幫助。我注意到如果我選擇「UTF-8」作爲編碼,那麼至少有兩個雙引號"
和「
。但是當我選擇「ISO-8859-1」作爲編碼時,我看到後面的雙引號變爲¡°
,或者有時例如“
。perl編碼問題
任何人都可以請解釋爲什麼這是這種情況?如何匹配「
並用perge中的正則表達式替換爲"
?
非常感謝。
ISO-8859-1是每字符一個字節的編碼。花哨的Unicode雙引號不在ISO-8859-1字符集中。所以你看到的是一個多字節字符,表示爲一系列ISO-8859-1字節。
要匹配這些奇怪的東西,請參閱perlunicode手冊頁,尤其是\ x {...}和\ N {...}轉義序列。
要回答您的問題,請嘗試\ x {201C}以匹配Unicode左側雙引號和\ x {201D}以匹配右側雙引號。你在你的問題中錯過了後者:-)。
[更新]
我應該提供我的參考...在英國的一些不錯的紳士對ASCII and Unicode quotation marks的頁面。簡單的香草ASCII/ISO-8859-1雙引號就是所謂的引號。
謝謝你的回答。 :)那麼其他簡單雙引號的名稱是什麼? – 2011-06-11 00:17:35
只是報價MARK U + 0022? – 2011-06-11 00:18:36
@強:是的。我添加了一個更新,其中包含我應該包含的鏈接 – Nemo 2011-06-11 00:20:13
可能是這個Old post
將幫助..
定義「選擇UTF-8作爲編碼」。你的意思是'使用utf8'作爲源代碼,或者'使用open qw(:std:utf8)'作爲流,或者其他什麼東西? – tchrist 2011-06-11 00:21:27
另請參閱[這個答案](http://stackoverflow.com/questions/6162484/why-does-modern-perl-avoid-utf-8-by-default/6163129#6163129)。 – tchrist 2011-06-11 00:26:17