我有一个编码问题,想请求帮助。我注意到如果我选择“UTF-8”作为编码,则(至少)有两个双引号"
和“
。但是当我选择“ISO-8859-1”作为编码时,我看到后一个双引号变为¡°
,或者有时候例如“
。
有人可以解释为什么会这样吗?如何匹配“
并使用perl中的regexp将其替换为"
?
非常感谢。
答案 0 :(得分:3)
ISO-8859-1是每字符一个字节的编码。花哨的Unicode双引号不在ISO-8859-1字符集中。所以你看到的是一个多字节字符,表示为ISO-8859-1字节序列。
要匹配这些奇怪的事情,请参阅perlunicode手册页,尤其是\ x {...}和\ N {...}转义序列。
要回答您的问题,请尝试\ x {201C}以匹配Unicode LEFT DOUBLE QUOTATION MARK和\ x {201D}以匹配RIGHT DOUBLE QUOTATION MARK。你在问题中错过了后者: - )。
[更新]
我应该提供我的参考资料......英国的一位优秀绅士在ASCII and Unicode quotation marks上有一页。普通的vanilla ASCII / ISO-8859-1双引号只是名为QUOTATION MARK。
答案 1 :(得分:-1)
可能是这个Old post
会有所帮助..