Questions tagged «utf-8»

有关Unicode字符编码的问题。


2
如何检测文件的编码?
在我的文件系统上(Windows 7),我有一些文本文件(如果需要的话,这些是SQL脚本文件)。 当使用Notepad ++打开时,在“编码”菜单中报告其中一些编码为“ UCS-2 Little Endian”,而某些编码为“ UTF-8不带BOM”。 这里有什么区别?它们似乎都是完全有效的脚本。没有Notepad ++的情况下,我如何分辨文件的编码?

5
选择ASCII编码而不是UTF-8有什么好处?
可以使用UTF-8对ASCII中的所有字符进行编码,而无需增加存储量(两者都需要存储一个字节)。 UTF-8除了“ ASCII字符”之外,还具有字符支持的优点。如果是这样的话,为什么我们会永远选择了UTF-8 ASCII编码? 当我们选择ASCII而不是UTF-8时,是否存在用例?

5
UTF-8是否能够支持将广泛的外语与数百万个新字符结合在一起?
如果发生外星人入侵,我们被迫在我们所有现有的计算机系统中支持他们的语言,那么UTF-8的设计是否允许他们容纳大量字符? (当然,我们不知道外星人是否真的有语言,他们是否或如何交流,但是为了争辩,请想象他们确实如此。) 例如,如果它们的语言由数百万个新发现的字形,符号和/或组合字符组成,那么从理论上讲,UTF-8能否以不间断的方式扩展为包括这些新字形,并且仍支持所有现有软件? 我对字形是否远远超过当前的大小限制并需要更多字节来表示单个字形感兴趣。如果无法扩展UTF-8 ,是否证明相对于UTF-32的唯一优势仅仅是小写字符的大小?
86 unicode  utf-8 

6
在数据库配置方面,应该在UTF-8上使用Latin-1吗?
我们在我工作的公司中使用MySQL,并使用Ruby on Rails构建面向客户端和内部的应用程序。 当我开始在这里工作时,遇到了一个以前从未遇到过的问题。生产服务器上的数据库设置为Latin-1,这意味着只要有用户输入,用户在其中复制和粘贴UTF-8字符,MySQL gem就会引发异常。 我的老板称这些为“坏字符”,因为它们大多数是不可打印的字符,并说我们需要将它们去除。我找到了几种方法来完成此操作,但是最终我们遇到了需要UTF-8字符的情况。另外,这有点麻烦,特别是因为似乎我所读过的唯一解决方案是将数据库设置为UTF-8(对我来说很有意义)。 我听到的坚持使用Latin-1的唯一论点是,允许不可打印的UTF-8字符可能会使MySQL中的文本/全文搜索混乱。这是真的吗? 还有其他原因使人应该在UTF-8上使用Latin-1吗?据我了解,它是卓越的,并且变得越来越普遍。

8
是否应该弃用除UTF-8(也许还有UTF-16 / UTF-32)之外的字符编码?
我的烦恼正在研究如此众多的软件项目,这些项目具有大量的字符集支持代码。不要误会我的意思,我全都出于兼容性的考虑,并且我很高兴文本编辑器允许您打开并保存多个字符集的文件。令我烦恼的是,如何将非通用字符编码的泛滥称为“适当的Unicode支持”而不是“问题”。 例如,让我选择PostgreSQL及其字符集支持。PostgreSQL处理两种类型的编码: 客户端编码:用于客户端和服务器之间的通信。 服务器编码:用于将文本内部存储在数据库中。 我可以理解为什么支持很多客户端编码是一件好事。它使不在UTF-8中运行的客户端无需进行转换即可与PostgreSQL通信。我不明白的是:为什么PostgreSQL支持多种服务器编码?数据库文件(几乎总是)从一个PostgreSQL版本到另一个版本不兼容,因此,跨版本兼容性不是这里的问题。 UTF-8是唯一可以对所有Unicode代码点进行编码的标准,兼容ASCII的字符集(如果我记错了,请告诉我)。我在阵营中认为UTF-8是最好的字符集,但我愿意忍受其他通用字符集,例如UTF-16和UTF-32。 我认为所有不通用的字符集都应弃用。他们不应该有任何令人信服的理由吗?

4
为什么UTF-8在其编码中浪费了几位
根据Wikipedia的文章,UTF-8具有以下格式: 首码尾码字节字节1字节2字节3字节4 点点使用 U + 0000 U + 007F 1 0xxxxxxx U + 0080 U + 07FF 2 110xxxxx 10xxxxxx U + 0800 U + FFFF 3 1110xxxx 10xxxxxx 10xxxxxx U + 10000 U + 1FFFFF 4 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx x表示该位用于选择代码点。 这在每个连续字节上浪费了两位,而在第一个字节上浪费了一位。为什么未对UTF-8进行以下编码? 首码尾码字节字节1字节2字节3 点点使用 U + 0000 U + …

2
UTF-16是固定宽度还是可变宽度?为什么UTF-8没有字节顺序问题?
UTF-16是固定宽度还是可变宽度?我从不同的来源得到了不同的结果: 从http://www.tbray.org/ongoing/When/200x/2003/04/26/UTF: UTF-16将Unicode字符存储在16位块中。 从http://en.wikipedia.org/wiki/UTF-16/UCS-2: UTF-16(16位Unicode转换格式)是Unicode字符编码,能够在Unicode代码空间中从0到0x10FFFF编码1,112,064 [1]个数字(称为代码点)。它产生每个代码点一个或两个16位代码单元的可变长度结果。 从第一个来源 UTF-8还具有编码单位为字节的优点,因此不存在字节顺序问题。 为什么UTF-8没有字节顺序问题?它是可变宽度的,一个字符可能包含一个以上的字节,所以我认为字节顺序仍然会是一个问题吗? 谢谢并恭祝安康!

3
我的源代码应该使用UTF-8吗?
我觉得通常您并不真正选择代码的格式。我的意思是,过去我的大多数工具都为我决定了。或者我甚至都没有真正考虑过。前几天我在Windows上使用TextPad,并且在保存文件时,它提示我有关ASCII,UTF-8 / 16,Unicode等的信息。 我假设几乎所有编写的代码都是ASCII,但是为什么要使用ASCII?我们现在是否应该使用UTF-8文件作为源代码,为什么?我想这可能对多语言团队有用。是否有与多语言团队如何命名变量/函数/等相关的标准?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.