java编码

第二篇:JAVA字符编码系列二:Unicode,ISO-8859-1,GBK,UTF-8编码及...

橙三吉。 提交于 2020-04-09 20:07:51
1、函数介绍 在Java中,字符串用统一的Unicode编码,每个字符占用两个字节,与编码有关的两个主要函数为: 1)将字符串用指定的编码集合解析成字节数组,完成Unicode-〉charsetName转换 public byte[] getBytes(String charsetName) throws UnsupportedEncodingException 2)将字节数组以指定的编码集合构造成字符串,完成charsetName-〉Unicode转换 public String(byte[] bytes, String charsetName) throws UnsupportedEncodingException 2、Unicode与各编码之间的直接转换 下面以对中文字符串"a中文"的编码转换为例,来了解各种编码之间的转换 1)Unicode和GBK 测试结果如下,每个汉字转换为两个字节,且是可逆的,即通过字节可以转换回字符串 String - GBK 〉 ByteArray:\u0061\u4E2D\u6587(a中文)-〉0x61 0xD6 0xD0 0xCE 0xC4 ByteArray - GBK 〉 String:0x61 0xD6 0xD0 0xCE 0xC4-〉\u0061\u4E2D\u6587(a中文) 2)Unicode和UTF-8 测试结果如下

java编码 unicode

亡梦爱人 提交于 2020-03-02 06:30:51
编码问题存在两个方面:JVM之内和JVM之外。 1、Java文件编译后形成class 这里Java文件的编码可能有多种多样,但Java编译器会自动将这些编码按照Java文件的编码格式正确读取后产生class文件,这里的class文件编码是Unicode编码(具体说是UTF-16编码)。 因此,在Java代码中定义一个字符串: String s="汉字"; 不管在编译前java文件使用何种编码,在编译后成class后,他们都是一样的----Unicode编码表示。 2、JVM中的编码 JVM加载class文件读取时候使用Unicode编码方式正确读取class文件,那么原来定义的String s="汉字";在内存中的表现形式是Unicode编码。 Java与Unicode: Java的class文件采用utf8的编码方式,JVM运行时采用utf16。 Java的字符串是unicode编码的。 总之,Java采用了unicode字符集,使之易于国际化。 Java支持哪些字符集: 即Java能识别哪些字符集并对它进行正确地处理? 查看Charset 类,最新的JDK支持160种字符集。可以通过static方法availableCharsets拿到所有Java支持的字符集。 Java代码 收藏代码 assertEquals(160, Charset.availableCharsets()

JAVA字符编码系列一:Unicode,GBK,GB2312,UTF-8概念基础

五迷三道 提交于 2019-12-07 15:06:35
这两天抽时间又总结/整理了一下各种编码的实际编码方式,和在Java应用中的使用情况,在这里记录下来以便日后参考。 为了构成一个完整的对文字编码的认识和深入把握,以便处理在Java开发过程中遇到的各种问题,特别是乱码问题,我觉得组成一个系列来描述和分析更好一些,包括三篇文章: 第一篇:JAVA字符编码系列一: Unicode,GBK,GB2312,UTF-8概念基础 第二篇:JAVA字符编码系列二: Unicode,ISO-8859,GBK,UTF-8编码及相互转换 第三篇:JAVA字符编码系列三: Java应用中的编码问题 第一篇:JAVA字符编码系列一:Unicode,GBK,GB2312,UTF-8概念基础 本部分采用重用,转载一篇文章来完成这部分的目标。 来源:holen'blog 对字符编码与Unicode,ISO 10646,UCS,UTF8,UTF16,GBK,GB2312的理解 地址:http://blog.donews.com/holen/archive/2004/11/30/188182.aspx Unicode: unicode.org制定的编码机制, 要将全世界常用文字都函括进去. 在1.0中是16位编码, 由U+0000到U+FFFF. 每个2byte码对应一个字符; 在2.0开始抛弃了16位限制, 原来的16位作为基本位平面, 另外增加了16个位平面,

第三篇:JAVA字符编码系列三:Java应用中的编码问题

爷,独闯天下 提交于 2019-12-01 21:04:35
这部分采用重用机制,引用一篇文章来完整本部分目标。 来源: Eceel东西在线 问题研究--字符集编码 地址:http://china.eceel.com/article/study_for_character_encoding_java.htm 1. 概述 本文主要包括以下几个方面:编码基本知识,java,系统软件,url,工具软件等。 在下面的描述中,将以"中文"两个字为例,经查表可以知道其GB2312编码是" d6d0 cec4 ",Unicode编码为" 4e2d 6587 ",UTF编码就是" e4b8ad e69687 "。注意,这两个字没有iso8859-1编码,但可以用iso8859-1编码来"表示"。 2. 编码基本知识 最早的编码是iso8859-1,和ascii编码相似。但为了方便表示各种各样的语言,逐渐出现了很多标准编码,重要的有如下几个。 2.1. iso8859-1 属于单字节编码,最多能表示的字符范围是0-255,应用于英文系列。比如,字母'a'的编码为0x61=97。 很明显,iso8859-1编码表示的字符范围很窄,无法表示中文字符。但是,由于是单字节编码,和计算机最基础的表示单位一致,所以很多时候,仍旧使用iso8859-1编码来表示。而且在很多协议上,默认使用该编码。比如,虽然"中文"两个字不存在iso8859-1编码,以gb2312编码为例