Perl中umlaut"ü"的正确存储值是多少?

bur*_*rsk 3 unicode perl utf-8 diacritics

我想直接用Perl提供UTF-8网站.我遇到了几个编码问题,因为源数据没有完全存储在UTF-8中.由于编码问题的调试会话,我发现德国变音符号有两种不同的表示形式ü.哪一个是Perl的正确存储值?

  • \xFC,这是Unicode位置U+00FCü
  • 0xC3 0xBC,这是UTF-8十六进制表示 ü

如果没有任何差异,那么为什么Perl将变音符号存储在不同的表示中,并且不将它存储在Unicode位置或UTF-8十六进制表示中.

Unicode/UTF-8字符表引用

ike*_*ami 8

使用Encoding :: FixLatinfix_latin.

$ perl -MEncoding::FixLatin=fix_latin -MEncode=encode_utf8 \
   -E'say sprintf "%v02X", encode_utf8(fix_latin("\xFC\xC3\xBC"))'
C3.BC.C3.BC
Run Code Online (Sandbox Code Playgroud)

在内部,最好使用Unicode.解码输入,编码输出.您可能会忘记编码输出.