java - UTF-8 可以保存 UTF-16 可以保存的相同数据吗

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

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

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

最佳答案

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

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

来自链接(维基百科):

UTF-8 (U from Universal Character Set + Transformation Format—8-bit) is a character encoding capable of encoding all possible characters (called code points) in Unicode. ... UTF-8 encodes each of the 1,112,064 valid code points in the Unicode code space (1,114,112 code points minus 2,048 surrogate code points) using one to four 8-bit bytes (a group of 8 bits is known as an octet in the Unicode Standard).

UTF-16 (16-bit Unicode Transformation Format) is a character encoding capable of encoding all 1,112,064 possible characters in Unicode.

关于java - UTF-8 可以保存 UTF-16 可以保存的相同数据吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28809830/

相关文章:

javascript - 对于 JavaScript 字符串等场景,base128 编码的可行性如何?

javascript - 搞乱 Javascript 中的字符

linux - Sed 替换失败,UTF-8 编码

java - 如何确保更新 Firebase 数据库的过程完成,无论 Activity 的生命周期如何

java - Play 2.4/Ebean/JPA/hibernate-entitymanager 的正确配置是什么?

ruby-on-rails - 执行失败: Error: "\xFE" from ASCII-8BIT to UTF-8

python - 如何从 Windows-1252 文件读取 ® 字符并写入 UTF-8 文件

unicode - cscript.exe 不读取 unicode 脚本 (UTF-8)

java - 如何在我的 React JHipster 应用程序中添加 fontawesome 图标?

java - java中如何声明ArrayList的ArrayList