黑马程序员__ASCII码表

本文详细介绍了字符编码的基础概念,包括ASCII码、ISO8859-1、GB2312和UTF-8等编码方式的特点及应用。通过实例演示了不同编码间的转换过程及其可能导致的乱码问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

----------- [url=http://www.itheima.com][color=red]android培训[/color][/url]、[url=http://www.itheima.com][color=red]java培训[/color][/url]、java学习型技术博客、期待与您交流! ------------


[b]字符编码[/b]

今天老师讲到乱码解决的问题时,听的一头雾水,突然发现自己对字符编码没有很好掌握,再次翻过头来在 复习一遍字符编码。

[b]字符:[/b]
java字符使用unicode编码表来表示字符,

[b]ASCII码表:[/b]
(American standard code information interchange)美国标准信息交换码,7位表示一个字符,
包含英文字母数字以及常用符号。
[b]ISO8859-1:[/b]拉丁码表,8位表示一个字符,最高位补1。不能表示汉字。

[b]gb2312:[/b]中文码表,两个字节表示一个字符。
[b]UTF-8:[/b]
最多用三个字节表示一个字符,字节最高位以0开头标识用一个字节表示一个字符。
第一个字节最高位以110开头,第二个字节最高位以10开头标识用两个字节表示一个字符。
第一个字节最高位以1110开头,第二个和第三个字节最高位以10开头,表示用三个字节表示一个字符
UTF-8编码可参考API文档中DataInput接口中关于UTF-8的描述。


编码与解码代码示例:
/*
如果编码编错了就没办法解码了(比如,用iso8859-1编码了中文)因为它已经确定了编码没办法改变,如果解码解错了在编一次码在进行正确解码
对中国进行ios8859-1编码,它会将中国两个字符每一个字符用一个字节来表示。*/
byte[] b1 = "中国".getBytes("iso8859-1");
System.out.println("iso8859-1编码:"+Arrays.toString(b1));
//对汉字“中国”进行本地字符编码也就是gb2312,每个汉字字符用两个字节表示
byte[] bytes = "中国".getBytes();
//对默认gb2312编码的字符串进行iso8859-1进行解码,
//因为gb2312编码后用四个字节来表示,iso8859-1用一个字节来表示一个字符,解码会表示为四个乱码字符
//因为解码不会对二进制数据产生影响,所以现在虽然没有解码成功但是字符的二进制数据还是原来的。
String str1 = new String(bytes,"iso8859-1");
System.out.println("iso8859-1解码:"+Arrays.toString(bytes)+":"+str1);
//对上面解析的四个乱码字符重新进行编码,因为四个字符是由iso8859-1解码得来的所以还会得到原来的字节数组
byte[] b2 = str1.getBytes("iso8859-1");
System.out.println("iso8859-1编码:"+Arrays.toString(b2));
/*将字节数组按照本地编码解码,因为字符编码二进制数据从来没发生改变,所以可以成功解码
* 例如tomcat服务器会将gbk编码默认按照iso8859-1解码,所以可以在进行iso8859-1编码,
* 在用本地编码进行解码
*/
String result = new String(b2);
System.out.println(result);

----------- [url=http://www.itheima.com][color=red]android培训[/color][/url]、[url=http://www.itheima.com][color=red]java培训[/color][/url]、java学习型技术博客、期待与您交流! ------------
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值