java的编码问题

import java.io.UnsupportedEncodingException;

public class CharacterCode {
 
 public static void main(String[] args) {
  //这是设置本地字符编码
  System.setProperty("file.encoding", "iso8859-1");
  //这是第二种方法设置的本地编码
//  System.getProperties().put("file.encoding", "iso8859-1");
  //这是打印出系统默认一些东西,通过打印出来的东西可以查看本地系统默认的字符编码集是gbk
  System.getProperties().list(System.out);
  String str = "中国";
  for (int i = 0; i < str.length(); i++) {
   //这是用java默认的unicode编码字符打印出来
   System.out.println(Integer.toHexString((int)(str.charAt(i))));
  }
  //这是用中文字符的GB2312编码打印出来
  byte[] buffer = null;
  try {
   //这是用iso8859-1编码打印出来,就会出现乱码
   buffer = str.getBytes();
  } catch (Exception e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  for (byte b : buffer) {
   System.out.println(Integer.toHexString(b));
  }
  //在显示器的输出流中打印出,利用国标码gb2312
  for (byte c : buffer) {
   //这个方法不能进行自动刷新缓存区的数据,但是
   System.out.write(c);
   
  }
  //这个方法会自动调用缓存区的刷新
//  System.out.write(buffer, 0, buffer.length);
  //PrintStream,System.out.println(),遇到println()这个的时候能够自动刷新缓存区
  System.out.println();
  //其实下面这句代码,首先"中国"这个字符窜打碎成gb2312,及调用了getBytes("gb2312"),然后调用write方法从屏幕写出来
  System.out.println("中国");
 }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值