Java中的字符编码与解码计算机等级考试
文章作者 100test 发表时间 2010:01:01 12:24:45
来源 100Test.Com百考试题网
import java.io.BufferedReader.
import java.io.FileInputStream.
import java.io.FileNotFoundException.
import java.io.FileOutputStream.
import java.io.IOException.
import java.io.InputStreamReader.
import java.io.OutputStream.
import java.io.OutputStreamWriter.
import java.io.UnsupportedEncodingException.
import junit.framework.TestCase.
/**
* 编码与解码测试
* @author jzj
*/
public class TestEncodeDecode extends TestCase {
private char chineseChar = 中 .
private char englishChar = a .
/**
* Java程序中的字符都是占用二个字节,因为 char 类型好比双字节的无符号整数
*/
public void testCharToUnicode() {
//十进制Uncode编码
System.out.println((int) chineseChar).//20013
System.out.println((int) englishChar).//97
//十六进制Uncode编码
System.out
.println(Integer.toHexString((int) chineseChar).toUpperCase()).//4E2D
System.out
.println(Integer.toHexString((int) englishChar).toUpperCase()).//61
//二进制Uncode编码
System.out.println(Integer.toBinaryString((int) chineseChar)).//100111000101101
System.out.println(Integer.toBinaryString((int) englishChar)).//1100001
}
/**
* 不管是中文还是英文都还是其他字符,每个字符都是占用两个字节,虽然英文字符的
* UTF-16编码与Unicode编码是一样的,只不过UTF-16在编码时会在码流前加上"FE FF"两个字节的内容,
* 表示字符是以UTF-16格式存储的,在读取时程序就会知道是UTF-16编码的字符
*/
public void testCharToUTF16() {
try {
//--中文字符转UTF-16
byte[] encodeArr = String.valueOf(chineseChar).getBytes("UTF-16").
//十进制编码输出
for (int i = 0. i