当前位置: 首页 > wzjs >正文

泸州市建设局网站四川省人民政府官网

泸州市建设局网站,四川省人民政府官网,新网域名搭建网站,哪家公司目录 字符集知识 1、GBK字符集 2、Unicode字符集(万国码) 3、乱码 4、Java中编码和解码的方法 字符集知识 字符(Character):在计算机和电信技术中,一个字符是一个单位的字形、类字形单位或符号的基本信…

目录

字符集知识

1、GBK字符集

2、Unicode字符集(万国码)

3、乱码

4、Java中编码和解码的方法

字符集知识

字符(Character):在计算机和电信技术中,一个字符是一个单位的字形、类字形单位或符号的基本信息。说的简单点字符是各种文字和符号的总称。一个字符可以是一个中文汉字、一个英文字母、一个阿拉伯数字、一个标点符号、一个图形符号或者控制符号等。

字符集(Character Set):是指多个字符的集合。不同的字符集包含的字符个数不一样、包含的字符不一样、对字符的编码方式也不一样。

计算机中常见的几种字符集:

        1、GB2312字符集:1980年发布,1981年5月1日实施的简体中文汉字编码国家标准。
收录7445个图形字符,其中包括6763个简体汉字


        2、BIG5字符集:台湾地区繁体中文标准字符集,共收录13053个中文字,1984年实施。


        3、GBK字符集:2000年3月17日发布,收录21003个汉字,包含国家标准GB 13000-1中的全部中日韩汉字,和BIG5编码中的所有汉字。简体中文版windows系统默认使用的就是GBK。系统显示:ANSI (统称为ANSI);GBK字符集完全兼容ASCII字符集

        4、Unicode字符集:国际标准字符集,它将世界各种语言的每个字符定义一个唯一的编码,以满足跨语言、跨平台的文本信息转换。

1、GBK字符集

(1)计算机的存储规则(英文)(GBK),英文用一个字节存储,完全兼容ASCII

(2)计算机的存储规则(汉字)(GBK),规则1:汉字两个字节存储;规则2:高位字节二进制一定以1开头,转成十进制之后是一个负数 

(3)英文与汉字区分:GBK当中,英文是用一个字节进行存储的,它是兼容ASCII字符集的,在编码的时候二进制前面要补零,所以英文一个字节二进制一定是以0作为开头的,而中文是两个字节,一定是以1作为开头的,那么底层的二进制文件也是通过这个规则来区分中文和英文的

 

2、Unicode字符集(万国码)

Unicode的编码规则:UTF(Unicode Transfer Format)

UTF-16编码规则:用2~4个字节保存

UTF-32编码规则:固定使用四个字节保存

UTF-8编码规则:用1~4个字节保存

UTF-8编码规则

1个字节表示:ASCII

2个字节表示:拉丁文;希腊文;西里尔字母;亚美尼亚语;

希伯来文;阿拉伯文;叙利亚文

3个字节表示:中日韩文字;东南亚文字;中东文字

4个字节表示:其他语言

示例:把汉字“汉”用UTF-8转换成二进制为 11100110 10110001 10001001

二进制中的红色部分是UTF-8规定要添加的,而黑色的就是用Unicode中查询的汉字对应二进制进行填补得到的结果

总结:Unicode字符集的UTF-8编码格式

一个英文占一个字节,二进制第一位是0,转成十进制是正数

一个中文占三个字节,二进制第一位是1,第一个字节转成十进制是负数

3、乱码

乱码的原因:

        原因1:读取数据时未读完整个汉字,因为字节流是一次读取一个字节,而汉字是用两个字节来存储的,当字节流只读取了一个字节后,把这个字节解码去字符集却查不到对应的数据,所以系统就会显示问号或方框等,这时候就是乱码了。

        原因2:编码和解码时的方式不统一,比如一个汉字在编码时用的是UTF-8,而在解码时却用GBK解码,因为UTF-8中用三个字节来存储汉字,而GBK中用两个字节来存储汉字,所以在解码后就会发生乱码。

防止乱码的做法:

        1、不要用字节流读取文本文件

        2、编码和解码时都使用同一个码表,同一种编码方式

4、Java中编码和解码的方法

Java中编码的方法

public byte[ ] getBytes()

使用默认方式进行编码

public byte[ ] getBytes(String charsetName)

使用指定方式进行编码

 Java中解码的方法

String(byte[ ] bytes)

使用默认方式进行解码

String(byte[ ] bytes, String charsetName)

使用指定方式进行解码

 方法示例代码:

public static void main(String[] args) throws UnsupportedEncodingException {//使用默认方式进行编码String str1 = "ai你哟";byte[] bytes1 = str1.getBytes();System.out.println(Arrays.toString(bytes1));//[97, 105, -28, -67, -96, -27, -109, -97]//使用指定方式GBK进行编码byte[] bytes2 = str1.getBytes("GBK");System.out.println(Arrays.toString(bytes2));//[97, 105, -60, -29, -45, -76]//使用默认方式进行解码String str2 = new String(bytes1);System.out.println(str2);//ai你哟//使用指定方式GBK进行解码String str3 = new String(bytes2,"GBK");System.out.println(str3);//ai你哟//编码时用UTF-8得到的bytes1,却用GBK进行解码String str4 = new String(bytes1, "GBK");System.out.println(str4);//结果为:ai浣犲摕    很明显,乱码了
}

运行结果: 

了解字符集知识就可以更好的理解字符流了

推荐: 

【java基础】IO流(一):字节流的FileOutputStream(文件字节输出流)和 Filelnputstream(文件字节输入流)-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/m0_65277261/article/details/136631816?spm=1001.2014.3001.5501【java基础】异常处理机制-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/m0_65277261/article/details/136581375?spm=1001.2014.3001.5501【计算机网络】DHCP原理与配置-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/m0_65277261/article/details/136230649?spm=1001.2014.3001.5501

http://www.dtcms.com/wzjs/41926.html

相关文章:

  • 网站可以做多语言的吗西安优化seo
  • 拼多多电商网站建设亚马逊关键词优化怎么做
  • 中国电力建设协会网站百度推广是什么意思
  • wordpress vps 256mseo就业
  • web前端工程师的发展趋势免费seo视频教程
  • 酒店网站建设考虑哪些因素网络营销工具有哪些?
  • 前端开发培训得多少钱seo网站推广经理招聘
  • 孝感58同城网站建设百度贴吧网页版登录
  • 浅谈网站建设开发软文推广产品
  • 金融类网站模板torrentkitty搜索引擎
  • 点开文字进入网站是怎么做的seo网络营销外包公司
  • 网站动态标签济宁百度推广开户
  • 今天福州发生一起重大网站关键词优化费用
  • wordpress购物网站如何制作简易网站
  • 网站建设评语推广软文代发
  • 国外优秀app设计网站有哪些whois查询 站长工具
  • 美国cms是什么机构seo3的空间构型
  • 怎么做定制软件开发长沙百度快速优化排名
  • 微信做明天展现网站要多少钱促销方案
  • 淄博专业网站建设公司中国seo网站
  • 学做网站要学多久深圳优化公司义高粱seo
  • 简洁中文网站模板网络营销渠道类型有哪些
  • 南昌设计政府网站的公司一键优化大师下载
  • 找人做网站引擎搜索网站
  • 百度站长提交百度统计手机app
  • 百度搜自己的网站win7优化大师官方免费下载
  • 洛阳尚贤网络科技有限公司南昌seo数据监控
  • 开发网站实训的心得体会北京做网络优化的公司
  • 医疗产品网站建设河南网站公司
  • wordpress+做仿站自助建站工具