获得"?"对于ASCII值

时间:2014-03-18 14:37:30

标签: java char int

我想看看ASCII中的所有字符值是什么,所以我写了这个非常快速的循环,执行了以下操作。

for (int i = 0 ; i < 1000; i++){
   System.out.println("(int, char) " + "( "+ i + " , " +(char) i + "     )");
}

我得到的结果似乎不正确。他们罚款高达128.然后我得到的是问号,这里有一些结果......

(int, char) ( 121 , y )
(int, char) ( 122 , z )
(int, char) ( 123 , { )
(int, char) ( 124 , | )
(int, char) ( 125 , } )
(int, char) ( 126 , ~ )
(int, char) ( 127 ,  )
(int, char) ( 128 , ? )
(int, char) ( 129 , ? )
(int, char) ( 130 , ? )
(int, char) ( 131 , ? )
(int, char) ( 132 , ? )
(int, char) ( 133 , ? )
(int, char) ( 134 , ? )
(int, char) ( 135 , ? )
(int, char) ( 136 , ? )
(int, char) ( 137 , ? )
(int, char) ( 138 , ? )
(int, char) ( 139 , ? )
(int, char) ( 140 , ? )
(int, char) ( 141 , ? )
(int, char) ( 142 , ? )
(int, char) ( 143 , ? )
(int, char) ( 144 , ? )
(int, char) ( 145 , ? )
(int, char) ( 146 , ? )
(int, char) ( 147 , ? )
(int, char) ( 148 , ? )
(int, char) ( 149 , ? )
(int, char) ( 150 , ? )
(int, char) ( 151 , ? )
(int, char) ( 152 , ? )
(int, char) ( 153 , ? )
(int, char) ( 154 , ? )
(int, char) ( 155 , ? )
(int, char) ( 156 , ? )
(int, char) ( 157 , ? )
(int, char) ( 158 , ? )
(int, char) ( 159 , ? )

为什么它们一直作为问号出现到1000.它们应该是一堆除了基本加密之外我永远不需要的数字。任何想法为什么会这样? 提前谢谢。

2 个答案:

答案 0 :(得分:5)

无论您使用什么来显示输出,都无法显示这些字符。

一般情况下,所有显示设备都会处理最多127个字符(但请注意其中一些实际上是换行符,因此不能显示为字形),但超出此范围的字符取决于显示的功能。

常见的&#34;后备&#34;是替换任何它无法处理的字符?字符。您有时也会看到用于此目的的黑色方块。

答案 1 :(得分:0)

java中的字符不是ASCII编码,而是UTF16,因此您获得相应的UTF16字符。从索引128开始有几个控制代码点,这就是为什么你将问号作为替换。 BTW:ASCII仅包含索引127之前的字符。