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

Can UTF-8 hold the same data that UTF-16 can hold

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

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

是的,可以。 UTF-8 and UTF-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.

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

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