![]() |
1
9
|
![]() |
2
15
我们在面向服务的Web服务世界中几乎只使用UTF-8——即使使用“just”西欧语言,也有足够的“怪癖”来使用各种ISO-8859-X格式来让我们的大脑旋转——UTF-8确实完全解决了这一问题。 所以我放了一个 大的 投票支持在任何地方和任何时候使用UTF-8!-我想在面向服务的世界中,在.NET和Java环境中,这不再是一个问题或潜在的问题。 它只解决了这么多问题,你真的不需要一直处理…… 马克 |
![]() |
3
5
我不认为只接受UTF-8是可以接受的——你需要接受UTF-8以及你的目标市场以前流行的任何编码。 好消息是,如果你来自一个德国人的环境,那里你主要有8859-1/15和ASCII,另外接受8859-1并将其转换成UTF-8基本上是零成本的。很容易检测到:例如,使用8859-1编码的_¶或_¼是无效的UTF-8,甚至不需要进入容易检测到的无效对。使用字符128-159不太可能是有效的8859-1。在第一个高字节的几个字节内,您通常可以非常、非常好地了解使用哪种编码。一旦你知道了编码,不管是通过规范还是猜测,你不需要一个转换表来将8859-1转换成Unicode-U+0080到U+00FF,这与8859-1中的0x80-0FF完全相同。 |
![]() |
4
5
我倾向于参观 Runet 网站经常出现。他们中的许多人仍在使用 Windows-1251 编码。它也是yandex mail和mail.ru(独联体国家中最大的两个网络邮件服务)中的默认编码。当从俄罗斯IP地址下载时,它也被设置为Opera浏览器中的默认内容编码(在该地区流行的火狐之后排在第二位)。不过,我不太确定其他浏览器。 原因很简单:UTF-8需要两个字节来编码西里尔字母。非Unicode编码只需要1个字节(不像大多数东部字母,西里尔字母非常小)。它们的长度是固定的,并且很容易被只使用ASCII的旧工具处理。 |
![]() |
5
4
嗯,这取决于我们说的是什么样的应用程序和输出…在许多情况下(例如大多数基于Web的东西),您当然只能使用UTF-8,但是,例如,在一个允许用户以纯文本文件保存某些数据的桌面应用程序中,我认为只有UTF-8是 不 够了。 Mac OS X广泛使用UTF-8,它是用户文件的默认编码,大多数情况下都是这样的。主要的Linux发行版也是。但是在窗户上…Windows-1252(关闭但与ISO-8859-1不同)仍然是许多语言的默认编码吗?至少在Windows XP中是这样,但我不确定这是否发生了变化?在任何情况下,只要大量(主要是Windows)用户的计算机上的文件编码为Windows-1252(或类似的东西),支持UTF-8只会给许多人带来悲伤和困惑。 一些特定于国家的信息:在芬兰,ISO-8859-1(或15)也同样根深蒂固。例如,芬兰的IRC频道使用的是afaik,大部分还是拉丁语-1。(这意味着使用基于文本的客户机(如irssi)将utf-8作为系统默认值的Linux用户需要做一些变通/调整设置。) |
![]() |
6
3
以下是我能找到的一些统计数据: 这两个页面似乎都有重大问题:
更重要的是,统计数据只针对可访问Web的内容。似乎无法获得更广泛的统计数据(例如,对用户硬盘上的文档进行编码)。(考虑到在许多国家进行所需的研究有多困难/成本高昂,这并不让我感到惊讶。) 简言之,你的问题不能客观地回答。您也许可以在某个地方找到有关仅使用UTF-8的应用程序在特定国家的“可接受”程度的研究,但我找不到任何研究。 对于我来说,一个好主意就是编写不区分字符编码的应用程序,并让用户决定用于存储文档的字符编码。在Java和C语言等现代语言中,这是比较容易做到的。 |
![]() |
7
3
CJK字符的用户自然倾向于使用UTF-8,因为他们的字符变成了3个字节,而不是2个字节。显然,在中国,首选的是自己的2字节GBK编码,而不是UTF-16。 编辑 @joshua对此评论的回应是: 而且对于大多数Web工作来说,不管怎样,页面都将以UTF-8的形式变小,因为HTML和JavaScript字符现在编码为一个字节。 回应: GB.+编码和其他东亚编码是可变长度编码。值高达0x7f的字节主要映射到ASCII(有时会有较小的变化)。高位集的一些字节是2到4字节序列的前导字节,其他字节是非法的。就像UTF-8一样。 由于“html和javascript字符”也是ASCII字符,因此无论是在编码还是在UTF-8中,它们始终是1字节。 |
![]() |
8
2
UTF-8很流行,因为它通常比UTF-16更紧凑,具有完全的保真度。它也不受UTF-16的无结尾问题的影响。 这使得它成为交换格式的一个很好的选择,但是因为字符编码为不同的字节运行(每个字符从一个字节到四个字节),所以使用它并不总是很好。因此,为数据交换保留UTF-8并在入口和出口点使用转换通常更为简单。 对于系统内部存储(包括磁盘文件和数据库),使用本地UTF-16、带有其他压缩的UTF-16或一些8位“ansi”编码可能会更干净。当然,后者会将您限制在一个特定的代码页,如果您处理多语言文本,则可能会受到影响。对于本地处理数据,您可能需要一些“ansi”编码或原生utf-16。字符处理成为 许多的 这样更简单的问题。 所以我建议使用UTF-8 外部的 但内部比较少见。除了静态文本块之外,在内部使用UTF-8似乎是一场噩梦。 有些DBMS似乎总是选择将文本块存储为UTF-8。这提供了压缩(比存储UTF-16)的优势,而不需要尝试设计另一种压缩方案。因为转换到/从UTF-8转换非常常见,所以它们可能会利用已知的高效、可靠工作的系统库。 “ansi”方案的最大问题是绑定到单个小字符集,并且需要为具有大字母的语言处理多字节字符集序列。 |
![]() |
9
2
虽然它没有专门解决这个问题——UTF-8是所有IETF跟踪协议中强制实现的唯一字符编码。 |
![]() |
10
2
你可能对 this 问题。我一直在尝试构建一个关于支持各种语言的Unicode的CW。 |
![]() |
11
2
在W3Techs上,我们有所有这些数据,但可能不容易找到: 例如,通过首先选择语言:内容语言>日语,然后选择分段>字符编码,可以获得日语网站的字符编码分布。您将看到本报告: Distribution of character encodings among websites that use Japanese . 你看:日本的网站使用49%的shift-jis和38%的utf-8。你可以对每个顶级域名做同样的操作,比如说所有.jp站点。 |
![]() |
12
1
Java和C语言都在内部使用UTF 16,并且可以很容易地转换成其他编码;它们在企业界根深蒂固。 我想说,现在只接受UTF作为输入没什么大不了的,去做吧。 |
![]() |
13
1
我认为这更取决于问题域及其历史,然后取决于使用应用程序的国家。 如果您正在构建一个应用程序,您的所有竞争对手都在为其输出,例如ISO-8859-1(或在过去10年的大部分时间内),我认为您的所有(潜在)客户都希望您能够轻松地打开这些文件。 也就是说,我认为大多数时候除了UTF-8编码文件外,还不需要输出任何东西。现在大多数项目都能应付,但YMMV又一次取决于你的目标市场。 |
![]() |
John V · 是否存在单元测试无法发现的逻辑/流错误类型? 6 年前 |
![]() |
Beefster · 为什么ANSI颜色转义以“m”而不是“]”结尾? 7 年前 |
![]() |
Guillermo Gutiérrez · STR转换是如何工作的? 7 年前 |
![]() |
RudziankoÅ · 合并排序数组算法 7 年前 |
|
user8852560 · 构造函数中的验证和构造函数冲突 7 年前 |
![]() |
jav974 · 订购产品时寻找最佳价格组合的算法 7 年前 |
![]() |
hippietrail · 确定浮点数中前导零的数量 7 年前 |