首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java相关 >

Unicode码转汉语

2012-09-10 
Unicode码转中文http://javawind.net/tools/native2ascii.jsp?actiontransform这个在线的转码工具,有谁知

Unicode码转中文
http://javawind.net/tools/native2ascii.jsp?action=transform这个在线的转码工具,有谁知道将Unicode码转成中文的后台算法是怎样实现的呀?怎样才能用Java实现将像 跳舞鞋红色亲子鞋215BRAND:足下有福 这种的转成 跳舞鞋红色亲子鞋215BRAND:足下有福 这种呀?、
求各位大牛指点呀
在网上看了半天都没看到个所以然~~

[解决办法]
用这个试试看吧:

Java code
    public static String UnicodeToString(String str) {        Pattern pattern = null;        if (str.startsWith("&#")) {            pattern = Pattern.compile("(?:&#(\\d{4,5});?)");        } else if (str.startsWith("\\u")) {            pattern = Pattern.compile("(\\\\u(\\p{XDigit}{4}))");        } else {            throw new RuntimeException("Unicode Not Support");        }        char ch;        String ret = "";        Matcher matcher = pattern.matcher(str);        while (matcher.find()) {            if (matcher.groupCount() > 1) {                ch = (char) Integer.parseInt(matcher.group(2), 16);            } else {                ch = (char) Integer.parseInt(matcher.group(1), 10);            }            ret += ch;        }        return ret;    }
[解决办法]
测试成功,楼主结贴给分吧

Java code
    String str = "跳舞鞋红色亲子鞋215BRAND:足下有福";    Pattern pattern = Pattern.compile("(&#(\\p{XDigit}{5});)");            Matcher matcher = pattern.matcher(str);            char ch;            while (matcher.find()) {            ch = (char) Integer.parseInt(matcher.group(2));                 str = str.replace(matcher.group(1), ch + "");        }            System.out.println(str);        //输出结果为:跳舞鞋红色亲子鞋215BRAND:足下有福
[解决办法]
ldh911 大神始终快我一些啊

另外unicode 是把字符编译为16进制的 类似

楼主要处理的字符串其实不是普通的unicode编码 而是&# + ascii +";" 的html实体符号

中文“足” 的unicode为 “\u8db3” 而楼主的是 “足”

也就是16进制和10进制的区别
[解决办法]
足 这种是html entity中的decimal character reference

也可以利用现成的jakarta commons lang包
比如commons-lang-2.6.jar

Java code
import org.apache.commons.lang.StringEscapeUtils;public class Test {    public static void main(String[] args) {        System.out.println(StringEscapeUtils.unescapeHtml("足"));        System.out.println(StringEscapeUtils.unescapeHtml(""));    }}
[解决办法]
JScript code
alert(String.fromCharCode(36275,19979,26377,31119)); 

热点排行