【问题标题】:Can UTF-8 hold the same data that UTF-16 can holdUTF-8 能否保存与 UTF-16 相同的数据
【发布时间】:2015-05-02 19:22:21
【问题描述】:

使用 Java,我将多语言文本以 UTF-16 格式保存到文件中。为了节省磁盘空间,我想改用 UTF-8。
UTF-8 能否表达与 UTF-16 相同的字符集范围?

这将使我避免使用不同的人类语言进行回归或广泛测试。 我的大部分内容都是英文的,所以我希望节省磁盘空间。

【问题讨论】:

    标签: java encoding utf-8 character-encoding utf-16


    【解决方案1】:

    是的,可以。 UTF-8UTF-16 只是将 Unicode 字符转换为字节的不同方式,反之亦然。

    两种编码都可以编码所有可能的 Unicode 字符。

    来自链接(维基百科):

    UTF-8(来自通用字符集的 U + 转换格式 - 8 位)是一种字符编码,能够以 Unicode 编码所有可能的字符(称为代码点)。 ... UTF-8 使用一到四个 8 位字节(一组 8 位在Unicode 标准)。

    UTF-16(16 位 Unicode 转换格式)是一种字符编码,能够以 Unicode 编码所有 1,112,064 个可能的字符。

    【讨论】:

      【解决方案2】:

      UTF-8 和 UTF-16 可以表示所有有效的 Unicode 码位。

      UTF-8 也可以表示无效的 UTF-16 序列(具有宽松的验证)。
      反过来不成立。

      【讨论】:

        猜你喜欢
        • 2010-09-12
        • 2015-12-06
        • 2017-01-20
        • 1970-01-01
        • 2019-02-02
        • 2017-09-18
        • 2023-03-06
        • 2012-06-24
        相关资源
        最近更新 更多