首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

(char)System.in.read()对于输入的汉字,为何显示为‘?’,该怎么处理

2012-01-18 
(char)System.in.read()对于输入的汉字,为何显示为‘?’(char)System.in.read()对于输入的汉字,为何显示为‘?

(char)System.in.read()对于输入的汉字,为何显示为‘?’
(char)System.in.read()对于输入的汉字,为何显示为‘?’
对于汉字在java中以unicode码存放,个人以为截取其中的8位再强制转换为char,可是结果总为‘?’,请指教

[解决办法]
举个例子
'我 '这个字符对应的UTF-8编码是1100,1110,1101,0010
而read()这个方法只是读取输入流的下一个字节,并将其转成int返回
所以你得到的实际上是
0000,0000,0000,0000,0000,0000,1100,1110
接下来你把这个砍成char,就变成了0000,0000,1100,1110
显示出来就是 '? '
[解决办法]
import java.io.*;
public class Test
{
public static void main(String [] args) throws IOException{
System.out.println( "input your value: ");
BufferedReader br =new BufferedReader (new InputStreamReader(System.in));
String s=br.readLine();
System.out.println(s);
}

}

热点排行