博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
unicode 字符串。互相准换
阅读量:4323 次
发布时间:2019-06-06

本文共 2251 字,大约阅读时间需要 7 分钟。

/**     * 将字符串转成unicode     *      * @param str     *            待转字符串     * @return unicode字符串     */    public String convert(String str) {        str = (str == null ? "" : str);        String tmp;        StringBuffer sb = new StringBuffer(1000);        char c;        int i, j;        sb.setLength(0);        for (i = 0; i < str.length(); i++) {            c = str.charAt(i);            sb.append("\\u");            j = (c >>> 8); // 取出高8位            tmp = Integer.toHexString(j);            if (tmp.length() == 1)                sb.append("0");            sb.append(tmp);            j = (c & 0xFF); // 取出低8位            tmp = Integer.toHexString(j);            if (tmp.length() == 1)                sb.append("0");            sb.append(tmp);        }        return (new String(sb));    }    /**     * 将unicode 字符串     *      * @param str     *            待转字符串     * @return 普通字符串     */    public String revert(String str) {        str = (str == null ? "" : str);        if (str.indexOf("\\u") == -1)// 如果不是unicode码则原样返回            return str;        StringBuffer sb = new StringBuffer(1000);        for (int i = 0; i < str.length() - 6;) {            String strTemp = str.substring(i, i + 6);            String value = strTemp.substring(2);            int c = 0;            for (int j = 0; j < value.length(); j++) {                char tempChar = value.charAt(j);                int t = 0;                switch (tempChar) {                case 'a':                    t = 10;                    break;                case 'b':                    t = 11;                    break;                case 'c':                    t = 12;                    break;                case 'd':                    t = 13;                    break;                case 'e':                    t = 14;                    break;                case 'f':                    t = 15;                    break;                default:                    t = tempChar - 48;                    break;                }                c += t * ((int) Math.pow(16, (value.length() - j - 1)));            }            sb.append((char) c);            i = i + 6;        }        return sb.toString();    }

 

转载于:https://www.cnblogs.com/xab97/archive/2013/06/08/3125599.html

你可能感兴趣的文章
在outlook中查找Skype的聊天记录
查看>>
netsh命令
查看>>
nginx set变量后lua无法改值
查看>>
baseAdapter
查看>>
别让你妈知道!
查看>>
JAVA设计模式之迭代子模式
查看>>
Java程序生成exe可执行文件
查看>>
什么是blob,mysql blob大小配置介绍
查看>>
模运算的规则
查看>>
CSS样式布局入门介绍,非常详尽
查看>>
android app崩溃日志收集以及上传
查看>>
3、VS2010+ASP.NET MVC4+EF4+JqueryEasyUI+Oracle项目开发之——用户登录
查看>>
面试记-(1)
查看>>
压力测试 相关
查看>>
android update automatically ( android 自动升级)
查看>>
session cookie
查看>>
POJ 1222 EXTENDED LIGHTS OUT(翻转+二维开关问题)
查看>>
【BZOJ-4059】Non-boring sequences 线段树 + 扫描线 (正解暴力)
查看>>
几种简单的负载均衡算法及其Java代码实现
查看>>
TMS3705A PCF7991AT 线路图
查看>>