本代码针对Java语言,函数传入汉字的Unicode编码字符串,返回相应的汉字字符串,具体代码如下:【如果是json格式,下面这种Unicode码后面部分不会再转换回来,如Unicode码后面的 "} 部分不会转换出来】
- public String convert(String utfString){
- StringBuilder sb = new StringBuilder();
- int i = -1;
- int pos = 0;
- while((i=utfString.indexOf("\\u", pos)) != -1){
- sb.append(utfString.substring(pos, i));
- if(i+5 < utfString.length()){
- pos = i+6;
- sb.append((char)Integer.parseInt(utfString.substring(i+2, i+6), 16));
- }
- }
- return sb.toString();
- }
一、java,汉字转unicode码|unicode转汉字: 【如果是json格式下面这种Unicode码后面部分可以再转换出来, 转换出来是完整的】
- public class UnicodeStr {
- /**
- * @param args
- */
- public static void main(String[] args) {
- System.out.println(str2Unicode("最真不过平淡,最美不过平凡。"));
- System.out.println(unicode2Str("\u6700\u771f\u4e0d\u8fc7\u5e73\u6de1\uff0c\u6700\u7f8e\u4e0d\u8fc7\u5e73\u51e1\u3002"));
- }
- public static String str2Unicode(String s)
- {
- String str = "";
- if ((s == null) || (s.trim().equals("")))
- return str;
- for (int i = 0; i < s.length(); i++)
- {
- byte[] bytes = String.valueOf(s.charAt(i)).getBytes();
- String s4;
- if (bytes.length == 1)
- {
- s4 = String.valueOf(s.charAt(i));
- } else {
- int ch = s.charAt(i);
- s4 = "\\u" + Integer.toHexString(ch);
- }
- str = str + s4;
- }
- return str;
- }
- public static String unicode2Str(String theString) {
- char aChar;
- int len = theString.length();
- StringBuffer outBuffer = new StringBuffer(len);
- for (int x = 0; x < len;) {
- aChar = theString.charAt(x++);
- if (aChar == '\\') {
- aChar = theString.charAt(x++);
- if (aChar == 'u') {
- int value = 0;
- for (int i = 0; i < 4; i++) {
- aChar = theString.charAt(x++);
- switch (aChar) {
- case '0':
- case '1':
- case '2':
- case '3':
- case '4':
- case '5':
- case '6':
- case '7':
- case '8':
- case '9':
- value = (value << 4) + aChar - '0';
- break;
- case 'a':
- case 'b':
- case 'c':
- case 'd':
- case 'e':
- case 'f':
- value = (value << 4) + 10 + aChar - 'a';
- break;
- case 'A':
- case 'B':
- case 'C':
- case 'D':
- case 'E':
- case 'F':
- value = (value << 4) + 10 + aChar - 'A';
- break;
- default:
- throw new IllegalArgumentException(
- "Malformed encoding.");
- }
- }
- outBuffer.append((char) value);
- } else {
- if (aChar == 't') {
- aChar = '\t';
- } else if (aChar == 'r') {
- aChar = '\r';
- } else if (aChar == 'n') {
- aChar = '\n';
- } else if (aChar == 'f') {
- aChar = '\f';
- }
- outBuffer.append(aChar);
- }
- } else {
- outBuffer.append(aChar);
- }
- }
- return outBuffer.toString();
- }
- }
二、还有一种文字转unicode方法就是安装了java的jdk后就可以用bin目录下的native2ascii.exe来转换。先将要转换的文字写入一个文本文件,如str.txt ,则在命令行方式下键入命令:native2ascii str.txt (这个网上看到的,未测试)