1

如果我需要 ASCII 格式的西里尔字符,这意味着我需要一个扩展的 ASCII 表,对吗?我想知道 cp-1251 是否是 ASCII 的扩展,如果不是,它被认为是什么。我对谷歌搜索有点困惑。在某些地方,他们说这是其他扩展中的代码页。

另外,如果我有代码为 206 的 cp-1251 字符 O,那么相同字符的 UTF-8 值将是 041E,对吗?

4

3 回答 3

2

“扩展 ASCII”是一个模棱两可的术语。

US-ASCII 支持 128 个值(第 8 位保留)并且不支持任何 Cyrillic 代码点。Windows 1251的前半部分将代码点映射到相同的值范围。UTF-8 也是如此。因此,任何编码为 ASCII 的文档都是合法的 Windows 1252、Windows 1251、UTF-8、ISO-8859-1和一些其他编码

4F使用十六进制编辑器查看时,编码为 ASCII、Windows-1251 或 UTF-8 的 U+004F(拉丁文大写字母 O)将具有相同的八位字节值 ( )。

对于自然语言数据,大多数非 Unicode 编码应该被认为是过时的。

于 2013-05-27T13:24:19.913 回答
1

从技术上讲,ASCII 是一种 7 位格式,不包含西里尔字符。鉴于此,人们无法真正拥有真正的 ASCII 格式的西里尔字符。

CP-1251 是一种包含西里尔字符的 8 位编码。CP-1251 的前 128 个字符与 ASCII 相同,因此在这个意义上它是 ASCII 的扩展。然而,归根结底,CP-1251 只是一种字符编码,即字符和数值之间的映射。

Unicode 系列编码目前在现代国际化应用程序中具有最大的发展势头,其中 UTF-8 是最流行的,因为它对基本 ASCII 字符的紧凑表示。完全使用 Unicode 需要能够处理多字节字符,包括使用更复杂的算法来处理文本处理任务,例如排序、搜索和文本比较。

不幸的是,字符编码不再像 US-ASCII 为王时那样简单。当然,即使在那时,像 EBCDIC 这样的竞争对手也搅混了水。

一些可能有帮助的链接:

http://www.unicode.org/

http://msdn.microsoft.com/en-us/goglobal/cc305144

http://en.wikipedia.org/wiki/Windows-1251

于 2013-05-27T13:42:20.897 回答
1

ASCII 是一种标准。它是一个 7 位代码。它包含 0 .. 127 范围内的值。其他所有内容都不是 ASCII。

在 PC 上可以处理代码页。您可以选择包含您感兴趣的字符的代码页。

研究可以支持 ASCII 和几乎任何其他曾经发明的字符的Unicode可能是有益的。

于 2013-05-27T13:19:37.523 回答