perl - Perl 中元音变音 "ü"的正确存储值是多少?

标签 perl unicode utf-8 diacritics

我想直接使用 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::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
    

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

    关于perl - Perl 中元音变音 "ü"的正确存储值是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25143384/

    相关文章:

    arrays - 哈希键仅存储循环的最后一个元素

    用于 HTML 的 Perl 多字节字符编码

    css - 在没有评论的情况下禁用 SCSS Linting

    ios - 服务器的引号 (") appears as "â"在 iOS 应用程序中

    php - Mysql 坚持将奇怪的不间断空格字符放入我的空文本区域中

    perl - 对于文件总和值中的每一行

    php - 我应该使用 PHP 还是 Perl 来处理我的数据并使用 MySQL 存储/检索它?

    Python Unicode CSV 导出(使用 Django)

    c# - TextWriter.ReadToEnd 与 Unix wc 命令

    string - 我可以删除字符串表示([]byte)中的尾随零来比较字符串吗?