2013-08-23 46 views
1

维基百科针对Unicode在Latin 1 Supplement下列出了x80-x9F“C1”范围。该范围也保留在ISO-8859-1代码页中。什么8位编码使用C1范围的字符? (x80-x9F或128-159)

我正在查看一个字符串文件,它们都在7位ASCII范围内,除了\x96的几个实例外,它看起来像一个破折号,例如街道地址的中间。

我不知道C1范围内的其他字符是否最终会显示在数据中,所以我想知道是否有正确的方式来读取文件。是否有任何使用x80至x9F代替终端控制字符的字符数据的8位编码?

+0

控制字符是从0x00到0x1F。 – Jiminion

+0

@Jim,我相信这些被称为“C0”控制字符。从高位开始还有另一个控制字符范围(或至少在某些编码中)。 –

回答

2

有该分配图形字符的部分或全部字节到0x9F的范围内0x80的8位编码的大量(可能的无限数量)。 Microsoft定义的几种编码在字节位置0x96处具有U + 2013 EN DASH“ - ”,并且该字符可以想象出现在街道地址中,尤其是在数字之间。

另一方面,例如,例如,MacRoman在位置0x96处具有字母“ñ”,并且它可以很好地出现在西班牙语的街道名称中。

为了理性分析情况,您应该检查整个数据,可能使用过滤器来查找Ascii范围0x00到0x7F之外的所有字节,查看字符出现的上下文,并尝试找到有关数据来源的技术信息。

+0

感谢您的扩大答案。细节更好。 –

+0

没有无限的数字;有“唯一”(17 * 2^16)^ 128个可能的单字节ASCII超集映射到Unicode代码点。 – dan04

+0

@ dan04,“潜在的无限数量”是一个强烈的表达,要表达一点,但仍然是字面上正确的。编码不需要将代码点映射到Unicode(尽管这是当今常见的方式);它可以将它们映射到人们可以发明的任何角色。 –

0

这是一个破折号。我猜测稍微不同于连字符(0x2D)。

http://www.ascii-code.com/

+0

你是对的!正确答案是[Windows-1252](https://en.wikipedia.org/wiki/Windows-1252)。他们的代码页包含Latin-1的扩展字符,它们不属于ISO的Latin-1。 –

+0

Windows-1252是可能的答案之一。这个问题中包含的数据并不能证明任何特定的结论。 –