Language agnostic UTF-8到底有多普遍?

Language agnostic UTF-8到底有多普遍?,language-agnostic,utf-8,internationalization,Language Agnostic,Utf 8,Internationalization,UTF-8在WWW或其他网站上对非英语文本的使用范围有多广?我对统计数据和特定国家的情况都感兴趣 我知道ISO-8859-1(或15)在德国根深蒂固,但对于那些无论如何都必须使用多字节编码的语言,比如日本或中国呢?我知道几年前,日本仍然几乎完全使用各种JIS编码 鉴于这些观察,UTF-8是最常见的多字节编码,这是真的吗?或者说它基本上只在专门针对国际市场和/或必须处理多语言文本的新应用程序中内部使用会更正确吗?现在是否可以接受在输出中只使用UTF-8的应用程序,或者每个国家市场是否希望输出文件采

UTF-8在WWW或其他网站上对非英语文本的使用范围有多广?我对统计数据和特定国家的情况都感兴趣

我知道ISO-8859-1(或15)在德国根深蒂固,但对于那些无论如何都必须使用多字节编码的语言,比如日本或中国呢?我知道几年前,日本仍然几乎完全使用各种JIS编码

鉴于这些观察,UTF-8是最常见的多字节编码,这是真的吗?或者说它基本上只在专门针对国际市场和/或必须处理多语言文本的新应用程序中内部使用会更正确吗?现在是否可以接受在输出中只使用UTF-8的应用程序,或者每个国家市场是否希望输出文件采用不同的传统编码,以便其他应用程序使用

编辑: 我不是问UTF-8是否有用或为什么有用,或者它是如何工作的。这些我都知道。我想问的是,它是否正在被广泛采用并取代旧的编码。

Java和C都在内部使用UTF-16,并且可以轻松地转换为其他编码;他们在企业界的地位相当稳固


我想说,现在只接受UTF作为输入并不是什么大不了的事;去做吧

在面向服务的web服务世界中,我们几乎只使用UTF-8——即使使用“仅仅”西欧语言,也有足够多的“怪癖”来使用各种ISO-8859-X格式让我们头晕目眩——UTF-8真的完全解决了这一问题

所以我投了一张大大的票,支持随时随地使用UTF-8!:-)我想在面向服务的世界以及.NET和Java环境中,这已经不再是一个问题或潜在的问题

它解决了很多问题,你真的不需要一直处理


Marc

我不认为仅仅接受UTF-8是可以接受的-你需要接受UTF-8以及之前在你的目标市场流行的任何编码

好消息是,如果你来自德国,你大部分都有8859-1/15和ASCII,另外接受8859-1并将其转换为UTF-8基本上是零成本的。很容易检测:例如,使用8859-1编码的öorü是无效的UTF-8,甚至没有进入容易检测到的无效对。使用字符128-159不太可能是有效的8859-1。在第一个高字节的几个字节内,您通常可以非常非常好地了解正在使用的编码。一旦你知道了编码,无论是通过规范还是猜测,你不需要翻译表就可以将8859-1转换为Unicode-U+0080到U+00FF与8859-1中的0x80-0xFF完全相同

我对统计学和统计学都感兴趣 数据和具体情况 国家

我认为这更多地取决于问题域及其历史,而不是应用程序使用的国家

如果您正在构建一个所有竞争对手都在输出的应用程序,例如ISO-8859-1(或在过去10年的大部分时间内都是如此),我认为您的所有(潜在)客户都希望您能够轻松地打开此类文件


也就是说,我认为在大多数情况下,除了UTF-8编码的文件外,不需要输出任何东西。现在大多数程序都能应付,但同样,YMMV取决于您的目标市场。

UTF-8很受欢迎,因为它通常比UTF-16更紧凑,保真度更高。它也不会受到UTF-16耐久性问题的影响

这使得它成为交换格式的一个很好的选择,但是因为字符编码到不同的字节运行(每个字符从一个字节到四个字节),所以使用它并不总是很好。因此,为数据交换保留UTF-8,并在入口和出口处使用转换通常更为干净

对于系统内部存储(包括磁盘文件和数据库),使用本机UTF-16、UTF-16和其他压缩或8位“ANSI”编码可能更干净。当然,后者将您限制为特定的代码页,如果您处理多语言文本,您可能会受到影响。为了在本地处理数据,您可能需要一些“ANSI”编码或本机UTF-16。这样一来,字符处理就变得简单多了

所以我认为UTF-8在外部很受欢迎,但在内部更为罕见。在内部,UTF-8除了静态文本块外,似乎是一场噩梦

一些DBMS似乎总是选择将文本blob存储为UTF-8。这提供了压缩的优势(相对于存储UTF-16),而无需设计其他压缩方案。由于UTF-8之间的转换非常普遍,因此他们可能会使用高效可靠的系统库

“ANSI”方案的最大问题是绑定到单个小字符集,并且需要处理具有大字母表的语言的多字节字符集序列

现在有一个好天气可以接受吗 在其应用程序中仅使用UTF-8的应用程序 产量,还是每个国家的市场 希望输出文件位于 不同的传统编码,以便 可被其他应用程序使用

嗯,这取决于我们谈论的应用程序和输出类型。。。在许多情况下(例如,大多数基于web的东西),您当然可以只使用UTF-8,但是,例如,在允许用户将一些数据保存在纯文本文件中的桌面应用程序中,我认为仅使用UTF-8是不够的

MacOSX广泛使用UTF-8,它是用户文件的默认编码,在大多数(所有?)主要Linux发行版中也是如此。但是在Windows上。。。Windows-1252(接近但与ISO-8859-1不同)仍然是许多语言的默认编码吗?至少在Windows XP中是这样,但是