我想直接使用 Perl 提供 UTF-8 网站。我遇到了几个编码问题,因为源数据没有完全存储在 UTF-8 中。由于编码问题的调试 session ,我发现了德语变音符号的两种不同表示 ü
.哪个是 Perl 的正确存储值?
\xFC
,这是 Unicode 位置 U+00FC
为 ü
0xC3 0xBC
,这是 ü
的 UTF-8 十六进制表示如果没有任何区别,那么为什么 Perl 以不同的表示形式存储变音符号而不将其存储在 Unicode 位置或 UTF-8 十六进制表示中。
Unicode/UTF-8 character table reference
最佳答案
使用 Encoding::FixLatin的 fix_latin
.
$ perl -MEncoding::FixLatin=fix_latin -MEncode=encode_utf8 \
-E'say sprintf "%v02X", encode_utf8(fix_latin("\xFC\xC3\xBC"))'
C3.BC.C3.BC
在内部,最好使用 Unicode。解码输入,编码输出。您可能会忘记对输出进行编码。
关于perl - Perl 中元音变音 "ü"的正确存储值是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25143384/