2 如何检测文件的编码? 在我的文件系统上(Windows 7),我有一些文本文件(如果需要的话,这些是SQL脚本文件)。 当使用Notepad ++打开时,在“编码”菜单中报告其中一些编码为“ UCS-2 Little Endian”,而某些编码为“ UTF-8不带BOM”。 这里有什么区别?它们似乎都是完全有效的脚本。没有Notepad ++的情况下,我如何分辨文件的编码? 115 file-systems character-encoding utf-8 notepad++
5 选择ASCII编码而不是UTF-8有什么好处? 可以使用UTF-8对ASCII中的所有字符进行编码,而无需增加存储量(两者都需要存储一个字节)。 UTF-8除了“ ASCII字符”之外,还具有字符支持的优点。如果是这样的话,为什么我们会永远选择了UTF-8 ASCII编码? 当我们选择ASCII而不是UTF-8时,是否存在用例? 91 character-encoding utf-8 ascii
2 为什么这么多散列和加密的字符串以等号结尾? 我在C#和MSSQL中工作,并且正如您期望的那样,我将密码存储为盐值和哈希值。 当我查看存储在nvarchar列中的哈希(例如,开箱即用的aspnet成员资格提供程序)时。我一直很好奇为什么生成的Salt和Hash值总是以一个或两个等号结尾。 在使用加密算法时,我已经看到了类似的事情,这是巧合还是有原因? 64 hashing character-encoding
3 为什么在Microsoft SQL Server中我们需要在字符串前放置N? 我正在学习T-SQL。从我看到的示例中,要在varchar()单元格中插入文本,我只能编写要插入的字符串,但是对于nvarchar()单元格,每个示例都在字符串前加上字母N。 我在具有nvarchar()行的表上尝试了以下查询,并且工作正常,因此不需要前缀N: insert into [TableName] values ('Hello', 'World') 为什么在我看到的每个示例中,字符串都以N为前缀? 使用此前缀的利弊是什么? 34 sql sql-server character-encoding unicode
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。 我认为所有不通用的字符集都应弃用。他们不应该有任何令人信服的理由吗? 31 unicode utf-8 character-encoding
7 回车符是否已过时? 我编写了一个开放源代码库,该库可以解析结构化数据,但由于看不到要点,因此特意省去了回车检测。它增加了额外的复杂性和开销,几乎没有好处。 令我惊讶的是,一个用户提交了一个错误,解析器无法正常工作,我发现了问题的原因是数据使用CR行尾而不是LF或CRLF。 自从切换到基于UNIX的平台以来,OSX一直没有使用LF样式的行尾吗? 我知道有些应用程序(例如Notepad ++)可以将行尾更改为显式使用CR,但我不明白为什么有人要这样做。 是否可以安全地排除支持(无论出于何种原因)决定使用旧Mac OS样式行尾的用户的统计上微不足道的支持? 更新: 需要说明的是,支持Windows行尾(即CRLF)不需要CR令牌识别。为了提高效率,词法分析器按每个字符进行匹配。通过静默忽略CR字符,CRLF令牌简化为LF。因此,CRLF令牌本身可以被认为是过时的,但这不是这个问题的目的。 最后一个为CR样式行结尾提供系统范围支持的操作系统是Mac OS 9。具有讽刺意味的是,在OSX中唯一仍将其用作默认值的应用程序是Microsoft Excel。 26 mac osx character-encoding software-obsolescence
5 哪些问题导致人们使用日语特定的编码而不是Unicode? 在工作中,我遇到了许多使用Shift-JIS和其他编码的日语文本文件。对于所有计算机用户,这会导致许多mojibake(字符不可读)问题。Unicode旨在通过为所有语言定义单个字符集来解决此类问题,并且建议在Internet上使用UTF-8序列化。那么,为什么每个人都不能从日语专用的编码转换为UTF-8?UTF-8存在哪些问题或弊端? 编辑:W3C列出了Unicode的一些已知的问题,这可能也是原因吗? 24 legacy unicode character-encoding
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 + … 17 character-encoding utf-8 text-encoding
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没有字节顺序问题?它是可变宽度的,一个字符可能包含一个以上的字节,所以我认为字节顺序仍然会是一个问题吗? 谢谢并恭祝安康! 16 unicode character-encoding utf-8
3 我的源代码应该使用UTF-8吗? 我觉得通常您并不真正选择代码的格式。我的意思是,过去我的大多数工具都为我决定了。或者我甚至都没有真正考虑过。前几天我在Windows上使用TextPad,并且在保存文件时,它提示我有关ASCII,UTF-8 / 16,Unicode等的信息。 我假设几乎所有编写的代码都是ASCII,但是为什么要使用ASCII?我们现在是否应该使用UTF-8文件作为源代码,为什么?我想这可能对多语言团队有用。是否有与多语言团队如何命名变量/函数/等相关的标准? 10 coding-standards source-code character-encoding utf-8