字符编码的学习

1)  Unicodegb2312的程序实战

package IO;

 

public class CharCode {

 

 

    public static void main(String[] args) throws Exception{

       System.setProperty("file.encoding", "iso8859-1");//更改java虚拟机的环境变量

       System.getProperties().list(System.out);//java虚拟机的环境变量都输出出来

       String strChina="中国";//定义一个字符串

       for (int i = 0; i < strChina.length(); i++) {

           System.out.println(Integer.toHexString((int)strChina.charAt(i)));//输出上边字符串每个字符的Unicode16进制形式

       }

       byte [] buf=strChina.getBytes();//把字符串转换为gb2312形式

       for (int i = 0; i < buf.length; i++) {

           System.out.println(Integer.toHexString(buf[i]));//打印中国的gb231216进制形式

       }

       //System.out.write(buf,0,4);   //输出字符数组的一组值,会刷新缓冲区

       for (int i = 0; i < buf.length; i++) {

           System.out.write(buf[i]); //输出字符数组的单个值,不会刷新缓冲区

       }

       System.out.println();   //调用该方法会刷新缓冲区

       //System.out.println("中国"); //用该方法输出数据时,会自动调用系统的给出的编码形式

 

    }

}

2)  字符编码

package IO;

 

public class CharDecode {

 

    /**

     * @param args

     */

    public static void main(String[] args) throws Exception{

       // TODO Auto-generated method stub

       System.getProperties().put("file.encoding", "iso8859-1");//设置虚拟机环境变量

       //System.getProperties().list(System.out);

       System.out.println("please enter a chinese String:");

       byte [] buf=new byte[1024];

       String infoStr=null;

       int pos=0;

       while (true) {

           int ch=System.in.read();//从键盘输入字符

           System.out.println(Integer.toHexString(ch));//查看该字符的16进制形式

           switch (ch) {

           case '/r':

              break;

           case '/n'://当输入回车时 程序结束,把输入的字符转化为字符串,再输出字符串的16进制形式

              infoStr=new String(buf,0,pos,"gb2312");

              for (int i = 0; i < infoStr.length(); i++) {

                  System.out.println(Integer.toHexString(infoStr.charAt(i)));

              }

              System.out.println(infoStr);

              break;

           default:

              buf[pos++]=(byte)ch;//把输入的字符依次存储到字符数组里

           }

       }

    }

 

}

出现问题:在myEclipse中的设置的虚拟机环境变量无效

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值