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

解析Java中的char (Java--Unicode--UTF-16)

 
阅读更多
Java语言的char类型是16位的;
Java支持Unicode,Java对Unicode支持采用的是UTF-16的编码实现;
在UTF-16下,Java的一个Unicode字符(代码点)由1或2个char(代码单元)表示。

Some sources for these fact:

http://baike.baidu.com/view/40801.htm?fr=ala0    ---->    Unicode与UTF-8,UTF-16,UTF-32的关系


Core java(Volnume 1)  Page 45     ---->    代码点,代码单元的概念



顺便贴出一个程序:


public class UnicodeShow {
public static void main(String[] args) {
String string = "我们都是中国人\uD843\uDC30";

/*返回这个字符串的代码单元数,也就是问"我们都是中国人"中有多少个16位,UTF-16中16位为一个代码单元。*/
System.out.println("The size of string \"我们都是中国人\uD843\uDC30\" is " + string.length());

System.out.println("The Unicode of 我 is \\u" + Integer.toHexString((short)string.charAt(0)));
}
}


其实在UCS-4标准中,有些代码点比如一些非常少见的字符,包括一些生僻汉字是4字节编码的即2个代码点。只是UCS-4标准很多设备还不支持。于是\uD843\uDC30显示一个方框\u20C30。

这是我的程序运行结果:
The size of string "我们都是中国人
分享到:
评论

相关推荐

    UTF8格式的字符串转变为char型格式字符串

    在C++中,可以使用`std::wstring`来存储宽字符(如UTF16),然后通过`std::wstring_convert`或`wcstombs`函数将其转换为多字节字符串(如`char*`)。在Java中,可以使用`Character`类的`toChars`方法直接将码点转换...

    java 中文Unicode转换

    因此,我们通常需要明确指定`InputStreamReader`和`OutputStreamWriter`的编码为`UTF-8`(一种常用的Unicode编码): ```java FileReader reader = new FileReader("input.txt", StandardCharsets.UTF_8); ...

    中文转utf8

    这段代码演示了如何在 Java 中将 GBK 编码的字符串转换为 UTF-8 编码的 Unicode 和 HTML 实体引用形式。这种转换通常用于网络传输或文本展示,确保不同平台之间的兼容性。通过理解这些基本概念,开发者可以更好地...

    常用的java汉字unicode编码

    Java使用Unicode的UTF-16编码形式来存储字符串,这是因为Java字符类型`char`的大小固定为16位,能够直接容纳大多数Unicode码点。 ### Java中的Unicode处理 在Java中处理Unicode文本时,可以使用多种方法: 1. **...

    电子教材:《Java语言程序设计-统一代码(Unicode)字符集》pdf版

    例如,可以通过`String.valueOf((char)码点)`的方式生成单个字符,或者使用`new String(byte[], charsetName)`构造方法从字节流中解析字符串,其中`charsetName`参数应设置为“UTF-8”或“UTF-16”等支持Unicode的...

    java utf8 to gb2312

    本文介绍了 Java 中 UTF-8 转 GB2312 的编码转换原理及实现方法。通过对给定代码片段的分析,指出了存在的问题,并给出了正确的实现方案。在实际开发过程中,了解并掌握字符编码的转换对于避免乱码等问题至关重要。

    Java面试宝典--2018-1-22(1).doc

    7. `char`型变量可以存储一个中文汉字,因为UTF-16编码中一个中文字符通常由两个16位的Unicode码位组成,而`char`在Java中占16位,刚好可以容纳。 8. 计算2乘以8的最有效率方式是直接使用乘法操作符`*`,即`2 * 8`...

    java字符编码问题

    2. **UTF-16编码**:通过`name.getBytes("UTF-16")`获取到的byte数组长度为4,这是因为UTF-16使用了字节顺序标记(BOM),并且“你”这个汉字在UTF-16编码下占用了2个字节。 3. **UTF-16BE编码**:通过`name....

    Java中字符集的详细介绍

    Java语言内部使用Unicode编码,具体来说是UTF-16格式,这意味着每个`char`类型变量能够表示一个Unicode字符,通常占据两个字节。UTF-16编码方式确保了Java能够处理几乎所有的世界语言。 当使用`String.getBytes()`...

    2.java字符集.zip

    Java使用UTF-16编码来表示`char`类型。UTF-16是一种变长的Unicode编码,它可以使用16位或32位来表示一个码点。对于BMP内的字符,UTF-16使用一个`char`;对于超出BMP的字符(补充平面),则需要两个`char`进行编码,...

    javajsp中 中文问题详解

    在Java中,`char`类型使用16位表示一个字符,这足以覆盖基本的Unicode字符范围。然而,对于超过16位的扩展Unicode字符(如某些表情符号),Java使用代理对(surrogate pairs)来表示。 #### 1.2 字符与字节的转换 ...

    Unicode与中文互换相关

    Unicode标准中最常见的编码形式之一是UTF-8,它使用可变长度字节序列来表示字符,这使得它在互联网上的传输非常高效。 #### 三、中文与Unicode的转换 ##### 1. 将Unicode转为中文 在Java中,可以编写一个方法将...

    字符与Charcode互换

    常见的Unicode编码格式有UTF-8、UTF-16等。 在Java中,我们可以使用`Character`类来处理字符与Charcode的转换。例如,通过`charCodeAt()`方法可以获取字符对应的Charcode,而`String.fromCharCode()`方法则可以将...

    Java常见问题集锦

    OutputStreamWriter osw = new OutputStreamWriter(out, "UTF-8"); // 或者 "GB2312" osw.write("你好世界!"); osw.flush(); osw.close(); } ``` #### 6. Java Web服务器的类路径设置 - **问题描述**:在Java...

    java解析php函数json_encode unicode 编码问题

    总而言之,Java解析PHP函数json_encode生成的JSON字符串时,需要注意unicode编码和UTF-8编码的正确使用。通过编写专门的解码方法或使用现成的JSON库,可以有效解决编码问题,确保数据在客户端和服务器之间的正确解析...

    java面试1000题

    Java内部使用**Unicode**编码格式,确保了对全球各种语言文字的支持,特别是UTF-16编码形式。 ### 合法的变量命名规则 - 变量名不能以数字开头。 - 变量名可以包含字母、数字、$和_。 - 变量名不能是Java关键字。 ...

    对XML进行parse时的InvalidUnicodecharacter(0x0)分析.pdf

    总之,理解Unicode的基本概念,包括代码点、编码字符集和UTF-16编码,对于处理XML解析时的Invalid Unicode character问题至关重要。当遇到这类问题时,需要检查XML数据的来源,并在必要时进行字符编码转换或数据清洗...

    java字符之间的转化

    首先,Java中的字符数据类型是`char`,它是一个16位的Unicode编码,可以表示超过65,000个不同的字符。在Java中,我们可以使用单引号 `' '` 来定义一个字符常量。 1. **字符到整数的转化**: Java中的`Character`类...

    Java中文问题详解(高手必读)

    UTF-8是Unicode的一种变长字符编码方式,它可以高效地表示任何Unicode字符。对于中文字符来说,UTF-8通常使用三字节来表示一个汉字。 ```java // 将Unicode字符转为UTF-8编码的字节 char[] c = {'\u4f60'}; ...

Global site tag (gtag.js) - Google Analytics