常见字符编码

在程序中如果没有处理好字符编码问题,就可能容易出现乱码
在计算机的世界里,任何文字都是以指定的编码方式存在的
常见的编码有ISO8859-1、GBK/GB2312、unicode、UTF。

ISO8859-1:
编码属于单字节编码,最多只能表示0-255的字符范围,主要英文上应用。

GBK/GB2312:
中文的国际编码,专门用来表示汉字,是双字节编码,GBK比GB2312编码库更大。

unicode:
java中就是使用此编码方式,也是最标准的一种编码,是使用16进制表示的编码。但此编码不兼容iso8859-1编码。

UTF:
由于unicode不支持ISO8859-1编码,而且容易占用更多的空间,而且对于英文字母也需要使用两个字节编码,这样使用unicode不便于传输和存储,因此产生了utf编码,utf编码兼容了ISO8859-1编码,也可以用来表示所有语言字符,不过utf是不定长编码,每个字符的长度从1-6字节不等,一般在中文网页中使用此编码,因为这样可以节省空间。

造成乱码的根本原因:
1、程序使用的编码与本机的编码不统一
2、在网络中,客户端与服务端编码不统一

package com.Decorator;

import java.io.UnsupportedEncodingException;

public class codeDemo {
	public static void main(String[] args) {
		//通常产生乱码的情况是,两个不兼容的编码相互转换
		String info = "小乔流水人家";//GBk
		try {
			String info1 = new String(info.getBytes("gbk"),"iso8859-1");
			System.out.println(info1);
			
			String info2 = new String(info.getBytes("iso8859-1"),"gb2312");
			System.out.println(info2);
			
			String info3 = new String(info.getBytes("gb2312"),"gbk");
			System.out.println(info3);
			
		} catch (UnsupportedEncodingException e) {
			e.printStackTrace();
		}	
	}
}
/**
运行结果:
СÇÇÁ÷Ë®È˼Ò
??????
小乔流水人家
*/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值