转载:http://www.cnblogs.com/xignzou/p/3329438.html
参考网址:
http://www.oschina.net/code/snippet_142385_4297
http://canofy.iteye.com/blog/718659
在java的很多配置文件中,尤其是国际化资源中经常遇到类似\uf432这样的unicode编码,搜集了下该编码相关的资料,大致处理方法有如下:
1、Unicode转 汉字字符串。
这个过程最简单的方式就是直接获取。比如
String cnStr = "\ufeff\u4e2d\u56fd\u4eba";
System.out.println(cnStr); 即可获取对应的汉字字符 “中国人”;
但是呢,每次从输出读的话也未免过于不方便了,我们使用方法来做转换,直接获取。
参考如下
public static String unicodeToString(String str) { Pattern pattern = Pattern.compile("(\\\\u(\\p{XDigit}{4}))"); Matcher matcher = pattern.matcher(str); char ch; while (matcher.find()) { ch = (char) Integer.parseInt(matcher.group(2), 16); str = str.replace(matcher.group(1), ch + ""); } return str; }
2、获取字符串的unicode编码,这个我们可以通过直接获取字符串的unicode二进制,然后将其byte转换成对应的16进制表示即可,函数示例如下
static String getUnicode(String s) { try { StringBuffer out = new StringBuffer(""); byte[] bytes = s.getBytes("unicode"); for (int i = 0; i < bytes.length - 1; i += 2) { out.append("\\u"); String str = Integer.toHexString(bytes[i + 1] & 0xff); for (int j = str.length(); j < 2; j++) { out.append("0"); } String str1 = Integer.toHexString(bytes[i] & 0xff); out.append(str1); out.append(str); } return out.toString(); } catch (UnsupportedEncodingException e) { e.printStackTrace(); return null; } }
相关推荐
通过这种方式,你可以方便地在Unicode码和中文字符之间进行转换,这对于处理多语言文本或跨平台的字符编码问题非常有帮助。在处理涉及不同编码格式的文件时,了解如何使用`native2ascii`工具是非常重要的,它能帮助...
在Java编程语言中,字符编码和解码是处理文本数据时不可或缺的部分,特别是在网络通信、文件存储或跨系统交互中。Escape.java源代码是专门设计用于处理文本字符的编码和解码操作的一个类。这个类的目标是确保无论...
因此,"Ansi2Unicode"可能是一个将ANSI编码的字符串转换为Unicode编码的工具或示例,这在处理多语言文本或跨平台程序时尤其有用。 综合以上信息,我们可以推测这是一个辅助程序员或游戏开发者在使用Cheat Engine时...
总的来说,Java中字符串反转及其相关的字符编码问题处理要求程序员对Unicode编码、代理对的概念有深刻的理解,并且能够使用Java提供的工具类和方法正确处理这些高级字符问题。这不仅是对基础知识点的应用,也是对...
综上,这些练习涵盖了Java IO流的基础知识,包括字节流、字符流、高效流的使用,文件复制,转换流处理编码问题,以及对象序列化和反序列化等核心概念。通过实践这些题目,可以帮助开发者深入理解Java IO流的工作原理...
在国际化文件中,为了存储非英文字符,ASCII码可能被用来表示这些特殊字符的Unicode编码,因为ASCII是Unicode的一个子集。然而,对于开发者来说,阅读和理解这些编码并不直观,这正是此插件发挥作用的地方。 该插件...
在笔试中,可能会遇到要求编写一个函数,能够在保持字符串完整性的前提下进行截取操作,尤其是涉及到中文字符时,需要理解Unicode编码和JAVA对多字节字符的支持。中文字符可能占用多个字节,因此简单的按字节数截取...
**扩展知识点**: 字符编码、Unicode字符集处理等。 #### 4. 三角形判定 **题目描述**: 输入3个正数,判断能否构成一个三角形。 **知识点**: 三角形成立的条件是任意两边之和大于第三边。可以通过简单的条件判断来...
根据提供的文件信息,我们可以归纳出一系列与Java及周边技术相关的知识点。下面将对这些知识点进行详细阐述: ### Java基础知识 1. **Java基础类型** - **boolean**: 用于存储逻辑值,即`true`或`false`。 - **...
19. **char存储中文**:char可以存储单个Unicode字符,包括中文汉字。 20. **抽象类与接口**:抽象类可以有方法实现,接口只声明方法无实现。接口可继承接口,抽象类可实现接口,但抽象类不能继承具体类。 21. **...
4. `char`型:在Java中,`char`占用2字节,Unicode编码方案支持各种字符,包括中文和英文。 5. 表达式计算:`(x++)/3`的值,先进行加法`x++`(x变为3),然后除以3,结果为1。 6. 逻辑运算:`x 的逻辑值为`false`...
- **中文乱码转换**:使用正确的编码方式处理中文字符。 - **Big5字与Unicode的互换**:通过字符集转换函数来实现。 - **取得服务器当前的各种具体时间**:使用Java中的日期时间API。 - **用半角的特殊符号代替全角...
- `char` 类型可以存储中文字符,因为Java中`char`类型采用Unicode编码,一个`char`可以表示一个中文字符。 **9. 用最有效率的方法算出2乘以8等于几?** - 使用位移操作`2 可以快速计算2乘以8的结果。 **10. 请设计...
在Java中,char型变量可以存储中文汉字,但需要使用Unicode编码。abstract class和interface的区别在于抽象类可以有成员变量和具体方法实现,而接口只能声明抽象方法和常量。 Static Nested Class(静态内部类)和...
7. Java中一个字符占用两个字节,采用Unicode编码表。 8. System.out是PrintStream类的对象,标准输出流可以通过System类的`setOut(PrintStream out)`方法重定向。 9. InputStreamReader类用于将字节流转换为字符流...
Java中,`char`类型采用Unicode编码,每个`char`占用16位(即2个字节)。这是为了支持全球范围内的字符集,包括中文、日文、韩文等多字节编码的语言。 ### 4. 日期格式化与时间差计算 使用`SimpleDateFormat`类...
- 字符型:`char`,2字节(Unicode编码)。 - 布尔型:`boolean`。 - **引用数据类型**:类、接口、数组。 #### 数据类型的转换 - **默认转换**:`byte, short, char -> int -> long -> float -> double`。 - **...
本书是第II卷,以开发人员在项目开发中经常遇到的问题和必须掌握的技术为中心,介绍了应用Java进行桌面程序开发各个方面的知识和技巧,主要包括Java语法与面向对象技术、Java高级应用、窗体与控件应用、文件操作...