`
qdexception
  • 浏览: 44241 次
  • 性别: Icon_minigender_1
  • 来自: 青岛
社区版块
存档分类
最新评论

编码格式

阅读更多
JAVA中的字符,使用的都是Unicode编码。而显示输出和键盘都是采用本地编码。


UTF-8是一种比较常用的编码格式,它是Unicode编码的延伸:它里面的ASCII码只占1个字节,而其他国家的字符,占2或3个字节。


某个字符具体是占几个字节,取决于其所对应的Unicode码的16进制表示的范围:
如果某字符所对应的字节的高位,第1个bit位为0,它就只占用1个字节。
如果某字符所对应的字节的高位,前3个bit位为110,它就占用2个字节。
字节的第2位,前2个bit位为10。
如果某字符所对应的字节的高位,前4个bit位为1110,它就占用3个字节。
字节的第2和第3位,前2个bit位都为10。


UTF-8编码,相对于Unicode编码来说,有以下优点:

1,对于ASCII码来说,UTF-8不会出现内容为0x00的情况。(0x00与某些编程语言有一定的冲突)

2,便于应用程序检测数据在传输过程中是否发生了错误。(例如传输中字符丢失问题,因为UTF-8的字节开头都为0,110或1110这3种,所以丢了某个字节后,也可以判断下一个字符是从哪个字节开始的)

3,节省ASCII码(英文)类型文件的存储空间,因为UTF-8的ASCII码类型数据的储存只占1个字节,而Unicode却是占2个。而且ASCII码格式的文件不需要转换就会符合UTF-8编码的格式。


它的缺点:对于像中日韩等国家的文字,大都占3个字节,造成资源浪费。


UTF-16编码,是对Unicode编码的扩充,对Unicode编码没有影响(也就是说,某个字符用Unicode的表现形式和UTF-16并没有什么区别)。它只是增加了一些Unicode编码中没有表示的语言种类。

因为UTF-16新增加的语言大都用不到,所以可以大致的认为UTF-16和Unicode编码之间没有区别。

UTF-16和Unicode编码格式的字符,在不同体系结构的计算机系统中,在内存中的字节储存位置是不同的。例如:
在Intel  CPU的计算机中,内存总是先储存低字节(例如个位,十位等不重要的字节),后储存高字节(例如百位,千位)。而在其他CPU的计算机中却相反。


为了尽量保持外来字符串的正确性,采用一个字节一个字节读取的方式是最稳妥的。

字节是表示计算机内存中最原始的数据,不会产生编码问题。
只有当把字节当作字符来处理的时候,才会有编码问题。
分享到:
评论

相关推荐

    编码格式查看工具 编码格式查看工具

    编码格式查看工具: AVIcodec 解码器 及其他所有格式 光是看扩展名是无法知道影片的正确的编码格式的,特别像 DivX 这样的高品质、高压缩比的影片格式出现后。除了原本未压缩的 AVI 影片外,目前使用这样的扩展名...

    获取文件编码格式(纯JAVA代码,绝对对你有用)

    java 识别文件的编码格式 读取文件的编码 utf-8 gbk gb2312 java 编码 java 获取文件编码格式 java 乱码查找

    修改Ubuntu中文编码格式

    由于在linux和Windows的编码格式不一致,常常会出现中文乱码问题,后来通过查阅资料解决了此问题,一次分享,多次利用。

    判断字符编码格式代码

    判断字符编码格式代码,用C++编写的如何判断字符编码格式,UTF-8,ASCII等

    JAVA获取文件编码格式

    利用第三方开源包cpdetector获取文件编码格式

    Java工程编码格式由GBK转化成utf-8(编码格式互转)

    Java工程编码格式由GBK转化成utf-8(编码格式互转) https://ymjin.blog.csdn.net/article/details/118769530

    tomcat编码格式设置

    tomcat编码格式设置,通过设置编码,解决网页中数据传输乱码问题

    获取文件编码格式

    识别文本文件的编码格式。 有时我们在处理文本文件时,对其编码要求有一定要求,但一般情况下并不知道此文件的编码格式,就如同一个 MXL文件,它的标识为: 但是,这并不代表它的文件编码就是 "UTF-8"。 利用这个,...

    文本文件编码格式转换器

    从网上下载的源码经常会出现源码文件编码格式和IDE默认的格式不匹配的情况,特别是源码文件中有中文汉字(包括注释)的情况下,特特别是不同IDE、不同系统下编辑的源码。虽然IDE自带可以修改文件的编码格式,但是...

    常见视频编码格式详细介绍

    常见视频编码格式与RGB、YUV视频存储格式详细介绍

    eclipse android编码格式配置

    之前初次进行Android源码开发时,用Eclipse作为编辑器,结果提交代码打patch时... 设置android编码格式与Android源码一致,andorid源码编码格式以及引入包规则在源码根目录---development---ide---eclipse下两个文件。

    通用的固定长度编码格式的字符串查找算法的实现

    但在实际的工作中,还是会遇到一些特殊情况的处理,这使得直接使用字符串查找函数,得到的结果可能是错误的,比如本文中提到的固定长度编码格式的字符串的查找。本文介绍了通用固定长度编码格式的字符串查找算法的...

    JAVA程序的编码格式详解

    本文将向你详细介绍 Java 中编码问题出现的根本原因,你将了解到:Java 中经常遇到的几种编码格式的区别;Java 中经常需要编码的场景;出现中文问题的原因分析;在开发 Java web 程序时可能会存在编码的几个地方,一...

    获取编码格式的工具类

    这是一个获取文本的工具类,支持utf8,gbk等等格式的编码。对应位置编码格式的文件使用该工具类便可以获取文件工具类

    C# 编码自动识别 匹配文件当前编码格式

    支持处理编码格式"GB2312", "GBK", "HZ"等

    编码格式批量转换软件

    功能说明: 1.对GBK/GB2312、Unicode(LE)、Unicode(BE)、UTF8、UTF8 with ...3.对中文简繁体及台湾BIG5编码互相转换(需要指定源、目的编码格式) 4.支持文件及文件夹操作,支持鼠标拖拽 5.完全绿色软件,直接使用不需安装

    获取zip文件编码格式 cpdetector.zip

    判断文件编码格式(支持zip),所需jar包 antlr-1.0.jar,cpdetector-1.08.jar,jchadet-1.0.jar

    C#批量替换文档的编码格式

    因为工作的需要,在发布以前同事写的网站时发现ASP.net中很多.aspx和.cs文件的编码都是Unicode编码,这样会产生乱码,想批量修改其编码为UTF-8,所以自己就写了一个批量替换文档编码格式的工具,以便和我一样有需的...

    批量转换文件编码格式为UTF-8工具

    批量转换文件编码格式为UTF-8工具.zip 支持多层文件夹替换! 使用说明: 1.文件根目录:即您要转码的文件所在根目录 2.转码文件目录:即您转码后的文件所在目录 3.转码文件后缀:指[文件根目录]下,需要转码的文件后缀,...

    java获取文件编码格式

    通过webview打开html文件有可能编码不同就会乱码,所以要获取html文件的编码格式动态改变webview编码设置

Global site tag (gtag.js) - Google Analytics