输入一个中文字符串,然后将其的十六位编码输出
package com.yushipeng;
import java.io.*;
public class CharDecoder {
public static void main(String[] args) {
//将系统中的文件编码改变为"ISO-8859-1"
System.getProperties().put("file.encoding", "iso-8859-1") ;
System.out.println("输入一个中文字符串") ;
int ch = 0 ;
String strInfo = null ;
byte[] buf = new byte[1024] ;
int pos = 0 ;
while(true) {
try{
ch = System.in.read() ;
System.out.println(Integer.toHexString(ch));
}catch(Exception e) {
e.printStackTrace() ;
}
switch(ch) {
case '\r':
break ;
case '\n':
try {
//用GB2312的编码解码buf字符串,然后赋值给strInfo
strInfo = new String(buf,0,pos,"GB2312") ;
} catch (Exception e) {
e.printStackTrace();
}
for(int i =0;i<strInfo.length();i++) {
System.out.println(Integer.toHexString(strInfo.charAt(i))) ;
}
System.out.println(strInfo) ;
try {
//将strInfo字符串先用iso-8859-1编码,然后再用GB2312解码,这样就能显示出来中文,而不会乱码
System.out.println(new String(strInfo.getBytes("iso-8859-1"),"gb2312")) ;
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
break ;
default:
buf[pos++] = (byte) ch ;
}
}
}
}