`

Java unicode中文编码转换和反转

阅读更多

转载: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码转中文和中文转Unicode码的最简便的方法

    通过这种方式,你可以方便地在Unicode码和中文字符之间进行转换,这对于处理多语言文本或跨平台的字符编码问题非常有帮助。在处理涉及不同编码格式的文件时,了解如何使用`native2ascii`工具是非常重要的,它能帮助...

    Java文本字符编码解码操作类 Escape.java源代码.rar

    在Java编程语言中,字符编码和解码是处理文本数据时不可或缺的部分,特别是在网络通信、文件存储或跨系统交互中。Escape.java源代码是专门设计用于处理文本字符的编码和解码操作的一个类。这个类的目标是确保无论...

    转换类型直接用CE中.rar

    因此,"Ansi2Unicode"可能是一个将ANSI编码的字符串转换为Unicode编码的工具或示例,这在处理多语言文本或跨平台程序时尤其有用。 综合以上信息,我们可以推测这是一个辅助程序员或游戏开发者在使用Cheat Engine时...

    Java反转字符串和相关字符编码的问题解决

    总的来说,Java中字符串反转及其相关的字符编码问题处理要求程序员对Unicode编码、代理对的概念有深刻的理解,并且能够使用Java提供的工具类和方法正确处理这些高级字符问题。这不仅是对基础知识点的应用,也是对...

    day10_转换流、高效流1

    综上,这些练习涵盖了Java IO流的基础知识,包括字节流、字符流、高效流的使用,文件复制,转换流处理编码问题,以及对象序列化和反序列化等核心概念。通过实践这些题目,可以帮助开发者深入理解Java IO流的工作原理...

    一个不错的国际化文件反转插件

    在国际化文件中,为了存储非英文字符,ASCII码可能被用来表示这些特殊字符的Unicode编码,因为ASCII是Unicode的一个子集。然而,对于开发者来说,阅读和理解这些编码并不直观,这正是此插件发挥作用的地方。 该插件...

    zw_上海交通银行笔试编程题

    在笔试中,可能会遇到要求编写一个函数,能够在保持字符串完整性的前提下进行截取操作,尤其是涉及到中文字符时,需要理解Unicode编码和JAVA对多字节字符的支持。中文字符可能占用多个字节,因此简单的按字节数截取...

    java基础练习题

    **扩展知识点**: 字符编码、Unicode字符集处理等。 #### 4. 三角形判定 **题目描述**: 输入3个正数,判断能否构成一个三角形。 **知识点**: 三角形成立的条件是任意两边之和大于第三边。可以通过简单的条件判断来...

    Java技术问答(带链接)

    根据提供的文件信息,我们可以归纳出一系列与Java及周边技术相关的知识点。下面将对这些知识点进行详细阐述: ### Java基础知识 1. **Java基础类型** - **boolean**: 用于存储逻辑值,即`true`或`false`。 - **...

    Java面试题整理(2022年).docx

    19. **char存储中文**:char可以存储单个Unicode字符,包括中文汉字。 20. **抽象类与接口**:抽象类可以有方法实现,接口只声明方法无实现。接口可继承接口,抽象类可实现接口,但抽象类不能继承具体类。 21. **...

    JAVA复习题目[收集].pdf

    4. `char`型:在Java中,`char`占用2字节,Unicode编码方案支持各种字符,包括中文和英文。 5. 表达式计算:`(x++)/3`的值,先进行加法`x++`(x变为3),然后除以3,结果为1。 6. 逻辑运算:`x 的逻辑值为`false`...

    java 算法

    - **中文乱码转换**:使用正确的编码方式处理中文字符。 - **Big5字与Unicode的互换**:通过字符集转换函数来实现。 - **取得服务器当前的各种具体时间**:使用Java中的日期时间API。 - **用半角的特殊符号代替全角...

    Java就业面试题264道(独家奉献)

    - `char` 类型可以存储中文字符,因为Java中`char`类型采用Unicode编码,一个`char`可以表示一个中文字符。 **9. 用最有效率的方法算出2乘以8等于几?** - 使用位移操作`2 可以快速计算2乘以8的结果。 **10. 请设计...

    千方百计的面试题

    在Java中,char型变量可以存储中文汉字,但需要使用Unicode编码。abstract class和interface的区别在于抽象类可以有成员变量和具体方法实现,而接口只能声明抽象方法和常量。 Static Nested Class(静态内部类)和...

    2021计算机二级测试Java试题.docx

    7. Java中一个字符占用两个字节,采用Unicode编码表。 8. System.out是PrintStream类的对象,标准输出流可以通过System类的`setOut(PrintStream out)`方法重定向。 9. InputStreamReader类用于将字节流转换为字符流...

    自己总结java笔试面试题

    Java中,`char`类型采用Unicode编码,每个`char`占用16位(即2个字节)。这是为了支持全球范围内的字符集,包括中文、日文、韩文等多字节编码的语言。 ### 4. 日期格式化与时间差计算 使用`SimpleDateFormat`类...

    Java基础知识总结

    - 字符型:`char`,2字节(Unicode编码)。 - 布尔型:`boolean`。 - **引用数据类型**:类、接口、数组。 #### 数据类型的转换 - **默认转换**:`byte, short, char -&gt; int -&gt; long -&gt; float -&gt; double`。 - **...

    Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part3

    本书是第II卷,以开发人员在项目开发中经常遇到的问题和必须掌握的技术为中心,介绍了应用Java进行桌面程序开发各个方面的知识和技巧,主要包括Java语法与面向对象技术、Java高级应用、窗体与控件应用、文件操作...

Global site tag (gtag.js) - Google Analytics