《黑马程序员》高级io作业第五题

来源:互联网 发布:pdf属于结构化数据么 编辑:程序博客网 时间:2024/05/17 17:46

import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.nio.charset.Charset; public class Test3 { /*** @param args* @throws IOException */public static void main(String[] args) throws IOException {// TODO Auto-generated method stubInputStreamReader isr = new InputStreamReader(System.in,"iso8859-1");System.out.println(isr.getEncoding());BufferedReader bReader=new BufferedReader(isr);String s=bReader.readLine();for(int i=0;i<s.length();i++){System.out.println(Integer.toHexString(s.charAt(i)));}System.out.println(s);} }


输入“中国”后,程序的运行结果如下:
d6
d0
b9
fa
???u
请按照下面的两种要求修改上面的程序代码,让程序能够正常打印出输入的中文字符
(1)修改程序中的语句:
InputStreamReader isr = new InputStreamReader(System.in,"iso8859-1");
(2)不修改上面的语句,而是修改下面的语句:
System.out.println(s);
答:
(1)
改为InputStreamReader isr = new InputStreamReader(System.in);
(2)
改为System.out.println(new String(s.getBytes("iso8859-1")));
知识点:此时涉及到字符编码的问题,注意Reader是什么编码读取的,要同时按照什么编码得到字节数组,然后系统按照本地默认编码得到Unicode码的字符串。注意内存中存储的是Unicode码。显示时,再按照本地缺省编码显示。
原创粉丝点击