unicode和字符串之间的转换有两种方式

来源:互联网 发布:skynet windows 编辑:程序博客网 时间:2024/05/18 01:45
unicode和字符串之间的转换有两种方式。
1.1.通过JDK自带的”native2ascii“进行转换
    首先,您测试的机器需要安装JDK,比如我的机器环境,我的JDK安装在D:\Java\jdk1.7.0_45\,JDK所提供的可执行文件在D:\Java\jdk1.7.0_45\bin下。(我的是Windows版本的JDK)
    然后打开DOS窗口,键入命令:
    cd D:\Java\jdk1.7.0_45\bin 
    native2ascii
    

    这个时候控制台阻塞,光标闪动,输入待转换的字符串,回车即可


    
1.2.通过编写转换程序实现
① 可用下面的代码实现字符串转换为unicode。
/**
* 字符串转换unicode
*/
public static String string2Unicode(String string) {


StringBuffer unicode = new StringBuffer();


for (int i = 0; i < string.length(); i++) {


// 取出每一个字符
char c = string.charAt(i);


// 转换为unicode 添另\\u 后面的字符转换成16进制编码
unicode.append("\\u" + Integer.toHexString(c));
}


return unicode.toString();
}
② 可用下面代码实现unicode转换为字符串
/**
* unicode 转字符串
*/
public static String unicode2String(String unicode) {


StringBuffer string = new StringBuffer();


String[] hex = unicode.split("\\\\u");


for (int i = 1; i < hex.length; i++) {
// 转换出每一个代码点
int data = Integer.parseInt(hex[i], 16);
// 追加成string
string.append((char) data);
}


return string.toString();
}
③ 测试代码
@Test
public void testString2Unicode() {
String test = "传智播客老翁讲java";


//生成unicode编码
String unicode = UnicodeUtil.string2Unicode(test);


//转换unicode编码
String string = UnicodeUtil.unicode2String(unicode);


System.out.println(unicode);


System.out.println(string);


}
④     输出如下内容:
\u4f20\u667a\u64ad\u5ba2\u8001\u7fc1\u8bb2\u6a\u61\u76\u61
传智播客老翁讲java
0 0
原创粉丝点击