字符集编码学习

很多文字都是采用以下这文章(转):

https://www.ibm.com/developerworks/cn/java/j-lo-chinesecoding/index.html


1、为什么要编码?

世界语言有多种,每种写法上又不一样,可现在的计算机只能识别机器语言(二进制),再往上走点就是只能识别数字和字母,谁让计算机是老外发明的呢?所以除了英语之外的其它语言都需要进行编码和解码的步骤。


2、位、字节、字符

一个数字和英文字母表示1字节,而1字节又是8位,至于字符一般是占两个字节,为什么说一般情况是因为不同的字符编码情况还有些不同,下面我们来看看:

ASCII码:它总共有128个,用一个字节的低7位表示;

ISO-8859-1码:它涵盖了大多数西欧的语言,应用很广泛。但仍然是单字节编码,总共能表示256个字符;

GBK码:

UTF-16码:固定为两个字节,虽然能够涵盖所有但是在空间上有些浪费,比方说一个英文字母也占用两个字节,所以常用UTF-8;

UTF-8码:它比UTF-16更加灵活,根据字符类型采用了一种可变长的技术,从而应用广泛;


3、查看运行环境采用何种编码

System.out.print(System.getProperty("file.encoding"));


4、编码解码的例子

String param1BeforeEncoding = "hello there";
		String param1AfterEncoding = URLEncoder.encode(param1BeforeEncoding, "UTF-8");
		String param1AfterDecoding = URLDecoder.decode(param1AfterEncoding, "UTF-8");
		System.out.println("param1 before encoding:" + param1BeforeEncoding);
		System.out.println("param1 after encoding:" + param1AfterEncoding);
		System.out.println("param1 after decoding:" + param1AfterDecoding);




猜你喜欢

转载自blog.csdn.net/u011984172/article/details/73770375