perl中的编码问题
我有一个编码问题,想寻求帮助。我注意到,如果我选择“UTF-8”作为编码,则(至少)有两个双引号perl中的编码问题,perl,encoding,mojibake,Perl,Encoding,Mojibake,我有一个编码问题,想寻求帮助。我注意到,如果我选择“UTF-8”作为编码,则(至少)有两个双引号“和”。但是当我选择“ISO-8859-1”作为编码时,我看到后一个双引号变成了”,或者有时,例如和 有人能解释一下为什么会这样吗?如何在perl中使用regexp匹配“并将其替换为” 非常感谢。ISO-8859-1是每个字符一个字节的编码。奇怪的Unicode双引号不在ISO-8859-1字符集中。因此,您看到的是一个多字节字符,表示为ISO-8859-1字节序列 要匹配这些奇怪的东西,请参阅手册页
“
和”
。但是当我选择“ISO-8859-1”作为编码时,我看到后一个双引号变成了”
,或者有时,例如和
有人能解释一下为什么会这样吗?如何在perl中使用regexp匹配“
并将其替换为”
非常感谢。ISO-8859-1是每个字符一个字节的编码。奇怪的Unicode双引号不在ISO-8859-1字符集中。因此,您看到的是一个多字节字符,表示为ISO-8859-1字节序列
要匹配这些奇怪的东西,请参阅手册页,尤其是\x{…}和\N{…}转义序列
要回答您的问题,请尝试\x{201C}匹配Unicode左双引号,并\x{201D}匹配右双引号。您的问题中遗漏了后者:-)
[更新]
我应该提供我的参考资料……英国的一位好先生有一个页面。普通的ASCII/ISO-8859-1双引号就是引号。也许这会有所帮助。谢谢你的回答。:)那么另一个普通双引号的名称是什么?@羌:是的。我添加了一个更新链接,我应该这样做首先包括使用字符名的最佳方法:full“
,以及类似的\N{EFT双引号}
等等。我不喜欢代码中的幻数,0x201C肯定就是这样。@Qiang:如果你想知道代码点的名称,你应该知道。那里还有很多与unicode相关的东西。定义“选择UTF-8作为编码”。你是指源代码使用utf8
,还是使用OpenQW(:std:utf8)用于流或其他所有内容?另请参阅。