package test; import java.io.UnsupportedEncodingException; /** * Unicode编码中,第一个汉字“一”的编码是4e00, 最后一个汉字“龥”的编码是9fa5,汉字在这个区间是连续编码的。 * 网上有说 Unicode编码中,u4e00到u9fa5之间的范围,只是“中日韩统一表意文字”这个区间,但并不是全部; * 所以本程序只考虑一般的汉字范围; * */ public class ChineseCode { public static void main(String[] args) throws UnsupportedEncodingException { // Unicode编码中的第一个汉字 19968 System.out.println(Integer.valueOf('u4e00')); // Unicode编码中的最后一个汉字 40869 System.out.println(Integer.valueOf('u9fa5')); boolean result = true; // 这里只输出部分汉字 for (int i = 19968; i < 20000; i++) { // 转换成汉字 String str = String.valueOf((char) i); //GBK编码下,汉字占两个字节 byte[] b = str.getBytes("GBK"); System.out.print(str + " " + i); //查看一个汉字的字节数和字节值 for (int j = 0; j < b.length; j++) { System.out.print(" " + b[j]); if (b[j] >= 0) { result = false; } } System.out.println(); } if (result == true) { System.out.println("字节值全部是负数"); } else { System.out.println("字节值不全是负数"); } } }