`
JavaSam
  • 浏览: 952120 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JAVA 文件编码学习

阅读更多

ANSI,GBK,UTF-8,UTF-16LE,UTF-16BE

2010-08-23 18:35

ANSI
不同的国家和地区制定了不同的标准,由此产生了 GB2312, BIG5, JIS  等各自的编码标准。这些使用  个字节来代表一个字符的各种

汉字延伸编码方式,称为 ANSI  编码。在简体中文系统下, ANSI  编码代表  GB2312  编码,在日文操作系统下, ANSI  编码代表  JIS  编码。

不同 ANSI  编码之间互不兼容,当信息在国际间交流时,无法将属于两种语言的文字,存储在同一段  ANSI  编码的文本中
Ansi 上各国对 ascii 码都进行庞大的互不兼容 的扩充,大陆对 Ansi 的扩充是 ascii->GB2312( 简体中文 )->GBK( 繁体中文 )->GB18030( 加了少

数民族语 言) ,台湾对 Ansi 的扩充是 ascii->BIG5 GB2312 BIG5 互不兼容。

GBK
GBK编码 (Chinese Internal Code Specification) 是中国大陆制订的、等同于 UCS 的新的中文编码扩展国家标准。 gbk 编码能够用来同时

表示繁体字和简体字,而gb2312 只能表示简体字, gbk 是兼容 gb2312 编码的。 GBK 工作小组于 1995 10 月,同年 12 月完成 GBK 规范。该编码标准

兼容GB2312 ,共收录汉字  21003 个、符号 883 个,并提供 1894 个造字码位,简、繁体字融于一库。

iso8859-1
属于单字节编码,最多能表示的字符范围是0-255 ,应用于英文系列。比如,字母 'a' 的编码为 0x61=97
很明显,iso8859-1 编码表示的字符范围很窄,无法表示中文字符。但是,由于是单字节编码,和计算机最基础的表示单位一致,所以很

多时候,仍旧使用iso8859-1 编码来表示。而且在很多协议上,默认使用该编码。

BIG5编码
是目前台湾、香港地区普遍使用的一种繁体汉字的编码标准,包括440 个符号,一级汉字 5401 个、二级汉字 7652 个,共计 13060 个汉字。

BIG5又称大五码或五大码, 1984 年由台湾财团法人信息工业策进会和五间软件公司宏碁  (Acer) 、神通  (MiTAC) 、佳佳、零壹  (Zero One)

大众 (FIC) 创立,故称大五码。 Big5 码的产生

UTF-8
UTF:UCS Transformation Format.考虑到 unicode 编码不兼容 iso8859-1 编码,而且容易占用更多的空间:因为对于英文字母, unicode

需要两个字节来表示。所以unicode 不便于传输和存储。因此而产生了 utf 编码, utf 编码兼容 iso8859-1 编码,同时也可以用来表示所有语言

的字符,不过,utf 编码是不定长编码,每一个字符的长度从 1-6 个字节不等。另外, utf 编码自带简单的校验功能。一般来讲,英文字母都是

用一个字节表示,而汉字使用三个字节。

UTF-16LE UTF-16BE
big endian little endian CPU 处理多字节数的不同方式。例如 字的 Unicode 编码是 6C49 。那么写到文件里时,究竟是将 6C 写在

前面,还是将49 写在前面?如果将 6C 写在前面,就是 big endian 。如果将 49 写在前面,就是 little endian

“endian”这个词出自《格列佛游记》。小人国的内战就源于吃鸡蛋时是究竟从大头 (Big-Endian) 敲开还是从小头 (Little-Endian) 敲开,由

此曾发生过六次叛乱,其中一个皇帝送了命,另一个丢了王位。

我们一般将endian 翻译成 字节序 ,将 big endian little endian 称作 大尾 小尾


Unicode(UCS)
Unicode编码后的大小是一样的 . 例如一个英文字母  "a"  和 一个汉字  " " ,编码后都是占用的空间大小是一样的,都是两个字节
Unicode可以用来表示所有语言的字符,而且是定长双字节(也有四字节的)编码,包括英文字母在内。所以可以说它是不兼容 iso8859-1

码的,也不兼容任何编码。不过,相对于iso8859-1 编码来说, uniocode 编码只是在前面增加了一个 0 字节,比如字母 'a' "00 61"
需要说明的是,定长编码便于计算机处理(注意GB2312/GBK 不是定长编码),而 unicode 又可以用来表示所有字符,所以在很多软件内部是使

unicode 编码来处理的,比如 java
在实际应用中UTF-16BE 的编码内容正好和 UNICODE 高低位相反,而 UTF-16LE UNICODE 的编码内容完全一致。

 

分享到:
评论

相关推荐

    Java字符编码及获取文件编码

    例如,`java.nio.charset.Charset`类提供了识别字符集的功能,但不能自动检测文件编码。通常,我们需要读取文件的前几个字节,然后基于这些字节的特定模式(如BOM,Byte Order Mark)来猜测编码。 Apache Commons ...

    文件编码转换工具java

    综上所述,这个“文件编码转换工具java”是一个便捷、跨平台的工具,提供了源代码以供扩展和学习,能够处理多国语言的编码问题,并且支持批量转换,极大地提升了文件管理效率,特别适合开发者和需要处理多语言文件的...

    java_文件复制(带有编码类型)

    "Java 文件复制(带有编码类型)" 在 Java 中,文件复制是非常常见的操作。今天,我们将讨论如何使用 Java 将文件从一个位置复制到另一个位置,并且带有编码类型。 标题:Java 文件复制(带有编码类型) 描述:...

    批量转化文件编码工具(附Java源码)

    这个工具的源码对于学习Java文件操作、字符编码以及GUI编程具有很高的参考价值。通过阅读和理解源码,开发者可以深入掌握Java的I/O机制以及如何设计和实现一个实用的桌面应用。同时,这也是一个很好的实践案例,展示...

    java文件流学习实验

    这个"java文件流学习实验"显然是一系列用Java编写的实验,目的是深入理解和掌握文件流的概念和应用。实验中的代码文件(Test11.java、Test12.java等)很可能包含了不同类型的文件流操作示例,如读取、写入、复制和...

    游程编码 JAVA 代码

    在实际编程中,`Run_Coding` 文件可能包含了实现这两个编码算法的Java源代码。这些代码可能包括了对二值图像的读取、像素值的统计、游程编码的生成、哈夫曼树的构建以及解码过程。通过阅读和理解这些代码,开发者...

    java 解析ASN.1 编码格式cdr话单文件例子

    本话题主要关注如何使用Java解析ASN.1编码格式的CDR(Call Detail Record)话单文件。 CDR是通信系统中记录通话、短信等通信活动详细信息的数据文件,包含诸如呼叫时间、时长、主叫号码、被叫号码、通话状态等多种...

    tlv的java编码和解码

    - **源码包**:包含了实现TLV编码解码的Java源代码,可以学习和理解其内部实现逻辑。 - **Demo**:一个带有详细注释的示例程序,展示了如何使用这个库进行编码和解码操作,可以帮助开发者快速上手。 为了更好地利用...

    java自动识别网站 文件的编码

    另一个可能的例子是`CsvDemo.java`,它可能演示了如何处理CSV文件,特别是当文件编码未知时。CSV(Comma Separated Values)文件是一种常见的数据交换格式,通常用于导出表格数据。处理CSV文件时,如果编码识别错误...

    Java反编译工具把.class文件转换为.java文件

    ### Java反编译工具:将.class文件转换为.java文件 #### 概述 在软件开发领域,有时我们可能需要分析第三方库或者开源项目的内部结构,这时就需要借助于反编译工具来帮助我们阅读和理解其源码。Java作为一种广泛...

    算术算法压缩实现Java

    在Java编程语言中实现算术编码,可以帮助我们理解这种压缩方法,并将其应用于实际项目,如大作业的需求。以下是关于算术压缩算法及其Java实现的详细讲解。 算术编码的基本原理: 1. **概率模型**:在压缩前,对输入...

    java编码总结1

    6. 源码规范:强调在编写Java源码时遵循编码规范的重要性,包括正确设定文件编码,使用合适的字符串拼接方法,以及避免因编码问题引发的异常。 通过深入研究这些知识点,开发者可以更好地处理Java项目中的编码问题...

    java编码主要用于java编码

    6. **输入输出流**:Java的I/O流系统提供了读写文件、网络通信等功能。BufferedReader和FileWriter等类是常见的I/O流操作工具。 7. **集合框架**:Java集合框架包括List、Set、Map等接口以及ArrayList、HashSet、...

    非常好用的java反编码工具

    标题提到的“非常好用的java反编码工具”可能是指JD-GUI,这是一个广泛使用的开源工具,它提供了图形用户界面,可以方便地查看和分析Java类文件。 JD-GUI是Java Decompiler项目的一部分,它允许开发者直接打开并...

    文件编码

    【标题】:“文件编码”是计算机领域中一个关键的概念,涉及到数据存储、传输以及显示的正确性。...通过阅读和分析给出的源码,我们可以学习到如何在实际项目中有效处理文件编码,避免出现常见的字符乱码问题。

    一个好用的java文件上传代码,供大家交流学习呵呵

    在Java Web开发中,文件上传是一个常见的需求,尤其在处理用户提交的图片、文档等数据时。Apache的Commons FileUpload组件是实现这一功能的常用工具,它为Servlet提供了方便的文件上传支持。在给定的标题和描述中,...

    获取文件编码格式与文件转码

    - **使用工具库**:Java和Android中有多种库可以帮助我们检测文件编码,如`jChardet`、`ICU4J`等。它们利用统计学模型分析文件内容来猜测编码。 - **编程实现**:例如在Android中,可以自定义函数读取文件部分内容...

    JAVA_字符编码

    在Java编程语言中,字符编码是一个至关重要的概念,它涉及到如何表示、存储和处理文本数据。字符编码系统如ASCII、ISO...通过深入学习和实践,开发者可以更好地处理各种字符编码问题,从而提升软件的兼容性和用户体验。

    java中BCD编码

    通过阅读和理解`BCDCode.java`的源码,我们可以学习如何在Java中实现BCD编码和解码,以及在实际项目中如何应用这些技术。这对于提升Java编程技能,特别是处理金融类数据的项目经验,是非常有价值的。

Global site tag (gtag.js) - Google Analytics