ByteToCharConverter.getConverter(encoding);

import sun.io.*;

class  byte2char
{
	public static void main(String[] args) throws Exception
	{
		//如果你不指定converter,则系统会自动使用当前的encoding,gb平台上用gbk,en平台上用8859_1。 
		//


		byte b[] = {(byte)'\u00c4',(byte)'\u00e3'}; 

		System.out.println("byte b[] =");
		System.out.println(java.util.Arrays.toString(b));

		//byte ——〉char: 
		//"你"的gb码是:0xc4e3 ,unicode是0x4f60 
		String encoding = "gb2312"; 
		System.out.println("encoding = "+encoding);
		ByteToCharConverter converter = ByteToCharConverter.getConverter(encoding); 
		char c[] = converter.convertAll(b); 

		for (int i = 0; i < c.length; i++) { 
		System.out.println(Integer.toHexString(c[i])); 
		} 

		System.out.println("c.length= "+c.length);
		for (int i = 0; i < c.length; i++) { 
		System.out.print(c[i]); 
		}
		System.out.println();

		//结果是什么?0x4f60 
		//如果encoding ="8859_1",结果又是什么?0x00c4,0x00e3 

		{
			String encoding = "8859_1"; 
			System.out.println("encoding = "+encoding);
			ByteToCharConverter converter = ByteToCharConverter.getConverter(encoding); 
			char c[] = converter.convertAll(b); 

			for (int i = 0; i < c.length; i++) { 
			System.out.println(Integer.toHexString(c[i])); 
			} 

			System.out.println("c.length= "+c.length);
			for (int i = 0; i < c.length; i++) { 
			System.out.print(c[i]); 
			}
			System.out.println();
		}
	}
}

/*
encoding = "gb2312"
byte b[] =
[-60, -29]
4f60
c.length= 1
你
Hello World!
请按任意键继续. . .
*/



byte2char.java:20: 警告: ByteToCharConverter是内部专用 API, 可能会在未来发行版中
删除
                ByteToCharConverter converter = ByteToCharConverter.getConverter
(encoding);
                ^
byte2char.java:20: 警告: ByteToCharConverter是内部专用 API, 可能会在未来发行版中
删除
                ByteToCharConverter converter = ByteToCharConverter.getConverter
(encoding);
                                                ^
byte2char.java:37: 错误: 已在方法 main(String[])中定义了变量 encoding
                        String encoding = "8859_1";
                               ^
byte2char.java:39: 错误: 已在方法 main(String[])中定义了变量 converter
                        ByteToCharConverter converter = ByteToCharConverter.getC
onverter(encoding);
                                            ^
byte2char.java:39: 警告: ByteToCharConverter是内部专用 API, 可能会在未来发行版中
删除
                        ByteToCharConverter converter = ByteToCharConverter.getC
onverter(encoding);
                        ^
byte2char.java:39: 警告: ByteToCharConverter是内部专用 API, 可能会在未来发行版中
删除
                        ByteToCharConverter converter = ByteToCharConverter.getC
onverter(encoding);
                                                        ^
byte2char.java:40: 错误: 已在方法 main(String[])中定义了变量 c
                        char c[] = converter.convertAll(b);
                             ^
注: byte2char.java使用或覆盖了已过时的 API。
注: 有关详细信息, 请使用 -Xlint:deprecation 重新编译。
3 个错误
4 个警告
请按任意键继续. . .

import sun.io.*;

class  byte2char
{
	public static void main(String[] args) throws Exception
	{
		//如果你不指定converter,则系统会自动使用当前的encoding,gb平台上用gbk,en平台上用8859_1。 
		//


		byte b[] = {(byte)'\u00c4',(byte)'\u00e3'}; 

		System.out.println("byte b[] =");
		System.out.println(java.util.Arrays.toString(b));

		//byte ——〉char: 
		//"你"的gb码是:0xc4e3 ,unicode是0x4f60 
		String encoding = "gb2312"; 
		System.out.println("encoding = "+encoding);
		ByteToCharConverter converter = ByteToCharConverter.getConverter(encoding); 
		char c[] = converter.convertAll(b); 

		for (int i = 0; i < c.length; i++) { 
		System.out.println(Integer.toHexString(c[i])); 
		} 

		System.out.println("c.length= "+c.length);
		for (int i = 0; i < c.length; i++) { 
		System.out.print(c[i]); 
		}
		System.out.println();

		//结果是什么?0x4f60 
		//如果encoding ="8859_1",结果又是什么?0x00c4,0x00e3 

		{
			encoding = "8859_1"; 
			System.out.println("encoding = "+encoding);
			converter = ByteToCharConverter.getConverter(encoding); 
			c = converter.convertAll(b); 

			for (int i = 0; i < c.length; i++) { 
			System.out.println(Integer.toHexString(c[i])); 
			} 

			System.out.println("c.length= "+c.length);
			for (int i = 0; i < c.length; i++) { 
			System.out.print(c[i]); 
			}
			System.out.println();
		}
	}
}

/*
byte b[] =
[-60, -29]
encoding = gb2312
4f60
c.length= 1
你
encoding = 8859_1
c4
e3
c.length= 2
??
请按任意键继续. . .
*/


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值