使用Java我将多语言文本保存为UTF-16格式的文件。为了节省磁盘空间,我想切换到使用UTF-8 UTF-8可以表达与UTF-16相同的字符集范围吗?
这将允许我避免在不同的人类语言中进行回归或广泛测试。 我的大部分内容都是英文的,所以我希望节省磁盘空间。
答案 0 :(得分:2)
是的,它可以。 UTF-8和UTF-16只是将Unicode字符转换为字节的不同方法,反之亦然。
两种编码都可以编码所有可能的Unicode字符。
来自链接(维基百科):
UTF-8 (U来自通用字符集+转换格式-8位)是一种能够编码Unicode中所有可能字符(称为代码点)的字符编码。 ... UTF-8使用一到四个8位字节对一个Unicode代码空间中的1,112,064个有效代码点(1,114,112个代码点减去2,048个代理代码点)进行编码(一组8位称为八位字节) Unicode标准)。
UTF-16 (16位Unicode转换格式)是一种能够以Unicode编码所有1,112,064个可能字符的字符编码。
答案 1 :(得分:1)
UTF-8和UTF-16可以代表所有有效的Unicode代码点。
UTF-8也可以表示无效的UTF-16序列(轻松验证) 反过来不成立。