二级Java中的字符编码与解码
来源:优易学  2011-11-2 15:35:07   【优易学:中国教育考试门户网】   资料下载   IT书店

 

  public void testCharToUTF8() {
   try {
   //--中文字符转UTF-8
   byte[] encodeArr = String.valueOf(chineseChar).getBytes("UTF-8");
   //十进制编码输出
   for (int i = 0; i < encodeArr.length; i++) {
    //-28 -72 -83
    System.out.print(encodeArr[i] + " ");
   }
   System.out.println();
   //十六进制编码输出
   for (int i = 0; i < encodeArr.length; i++) {
    //E4 B8 AD
    System.out.print(byteToHex(encodeArr[i]) + " ");
   }
   System.out.println();
   //所占字节数
   System.out.println(encodeArr.length);//3
   //--英文字符转UTF-8
   encodeArr = String.valueOf(englishChar).getBytes("UTF-8");
   //十进制编码输出
   for (int i = 0; i < encodeArr.length; i++) {
    //97
    System.out.print(encodeArr[i] + " ");
   }
   System.out.println();
   //十六进制编码输出
   for (int i = 0; i < encodeArr.length; i++) {
    //61
    System.out.print(byteToHex(encodeArr[i]) + " ");
   }
   System.out.println();
   //所占字节数
   System.out.println(encodeArr.length);//1

   } catch (UnsupportedEncodingException e) {
   e.printStackTrace();
   }
  }

  /**
   * 用Java程序入文件中以UTF-8编码方式存入字符时,是不会在文件头加上编码标志的。
   * 但如果在windows中用记事本创建一个文件,并以UTF-8保存时,会在文件开开头写
   * 入文件编码标志 EF BB BF 三个字节长度的编码标志,这时如果使用字节流方式读取
   * 有编码标示的UTF-8文件时,会有问题,此时只能以字节流读出后去掉前三个字节内容
   */
  public void testUTF8File() {
   try {
   //--字节流写
   byte[] encodeArr = String.valueOf(chineseChar).getBytes("UTF-8");
   OutputStream o = new FileOutputStream("e:/utf8.txt");
   o.write(encodeArr);
   encodeArr = String.valueOf(englishChar).getBytes("UTF-8");
   o.write(encodeArr);
   o.close();

   //--读
   BufferedReader br = new BufferedReader(new InputStreamReader(
    new FileInputStream("e:/utf8.txt"), "UTF-8"));
   //因为存储方法错误,所以导致读取时出现乱码,其实问号就是文件编码标志
   System.out.println(br.readLine());//中?a
   br.close();

上一页  [1] [2] [3] [4] 下一页

责任编辑:小草

文章搜索:
 相关文章
热点资讯
资讯快报
热门课程培训