UTF-8不支持哪些语言?

Jam*_*vec 13 c++builder utf-8 utf-16 internationalization utf

我正在努力国际化我的一个工作计划.我正在尝试使用远见以避免可能的问题或重做过程.

我看到了UTF-8,UTF-16和UTF-32的参考文献.我的问题是两部分:

  1. UTF-8 支持哪些语言?
  2. UTF-16和UTF-32比UTF-8有什么优势?

如果UTF-8适用于所有内容,那么我很好奇UTF-16和UTF-32的优点是什么(例如数据库中的特殊搜索功能等)理解应该帮助我完成我的程序设计(和数据库连接) )妥善.谢谢!

Ric*_*dle 13

这三种方式只是表达同一事物的不同方式,因此没有一种语言支持,而不支持另一种语言.

有时,UTF-16由需要与之互操作的系统使用 - 例如,Windows API本身使用UTF-16.

理论上,UTF-32可以表示单个32位整数中的任何"字符",而不需要使用多个,而UTF-8和UTF-16需要使用多个8位或16位整数要做到这一点.但在实践中,对于某些代码点的组合和非组合变体,这并不是真的.

UTF-8优于其他优点的一个优点是,如果你有一个错误,你假设8位,16位或32位整数的数量分别与代码点的数量相同,那么它就会变得更加明显使用UTF-8 - 只要你有任何非ASCII码点,某些东西就会失败,而使用UTF-16时,这个错误就会被忽视.

要回答您的第一个问题,这里是Unicode目前不支持的脚本列表:http://www.unicode.org/standard/unsupported.html

  • UTF-8 对于主要是英文的文本来说更紧凑,所以事情可能会更快。您不应该找到任何可用于一种编码而不是另一种编码的数据库功能。 (2认同)

duD*_*uDE 9

UTF8可变1到4个字节,UTF16 2或4个字节,UTF32固定4个字节.

这就是为什么UTF-8有一个优势,其中ASCII是最普遍的字符,UTF-16在ASCII不占优势的地方更好,UTF-32将覆盖4字节中的所有可能字符.