我在char 'a'上尝试了位移位运算符(<<1),并根据编译器获得了输出'Â',但是如果我看到'a' 1100001 = 97的二进制文件,并且在转换后它是11000010 = 194,那么'Â' is 182的ASCII码和ASCII码194属于一个盒子绘制字符。我不明白为什么编译器对ASCII码194显示‘?’?
ASCII码参考链接:Box drawing character single line horizontal down
发布于 2017-06-27 11:43:51
是一个标准,只有128个代码。
Extended ASCII不是一个单一的标准,它在一个字节中使用剩余的128个代码。正如维基百科所说:
有许多扩展的ASCII码(超过Windows220WindowsDOS和代码页)。
由此我们可以得出结论,扩展ASCII有220种不同的标准。您只看到了其中的一个,而不是与Java有关的那个。
实际上,您引用的链接使用的是code page 850,其中字符194 (十六进制C2)是┬,而Â是182 (十六进制B6)。
Java使用,其中Unicode值实际上是UTF-16编码的char字符。截至Unicode10.0(2017年6月),目前有136,755个代码。
前128个代码(Basic Latin与ASCII码相同。接下来的128个代码(Latin-1 Supplement与扩展ASCII码页ISO 8859-1相同。
在Unicode中,字符194 (十六进制C2)是Â,也称为'LATIN CAPITAL LETTER A WITH CIRCUMFLEX' (U+00C2)。
发布于 2017-06-27 11:16:31
您提供的链接是错误的Java扩展ASCII,请参阅此处:
http://www.idevelopment.info/data/Programming/programming_resources/PROGRAMMING_ascii_table.shtml
在此表中,194 =预期的Â。
https://stackoverflow.com/questions/44771711
复制相似问题