首页 > 其他 > 详细

Unicode转中文

时间:2015-10-13 10:47:20      阅读:487      评论:0      收藏:0      [点我收藏+]

由于需要将类似如下的字符串中的Unicode转成中文,于是,我封装了一个工具类UnicodeToChineseUtil

{"errNum":0,"retMsg":"success","retData":{"phone":"15943121227","prefix":"1594812","supplier":"\u79fb\u52a8","province":"\u6d59\u6c5f","city":"\u676d\u5dde","suit":"159\u5361"}}

具体代码如下:

package com.raze.unicode;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;


/**
 * @author DJM
 */
public class UnicodeToChineseUtil {
    
    private static final Logger logger = LoggerFactory.getLogger(UnicodeToChineseUtil.class);
    
    private UnicodeToChineseUtil(){
    }
    
    public static UnicodeToChineseUtil getInstance(){
        return new UnicodeToChineseUtil();
    }
    
    public String convert(String parameterStirng){
        logger.debug("The parameter is {}.", parameterStirng);
        StringBuffer buffer = new StringBuffer();
        if(parameterStirng.indexOf("\\u")==-1){
            logger.debug("The parameter not contain unicode.");
            buffer.append(parameterStirng);
        }else{
            while(parameterStirng.indexOf("\\u")!=-1){
                String substringNotUnicode = parameterStirng.substring(0,parameterStirng.indexOf("\\u"));
                buffer.append(substringNotUnicode);
                logger.debug("The substring {} not contain unicode", substringNotUnicode);
                String substringOfUnicode="";
                try {
                    substringOfUnicode = parameterStirng.substring(parameterStirng.indexOf("\\u"),parameterStirng.indexOf("\\u")+6);
                } catch (StringIndexOutOfBoundsException e) {
                    return buffer.append(parameterStirng.substring(parameterStirng.indexOf("\\u"))).toString();
                }
                try {
                    buffer.append((char)Integer.parseInt(substringOfUnicode.substring(2), 16));
                } catch (NumberFormatException e) {
                    buffer.append(substringOfUnicode);
                }
                parameterStirng= parameterStirng.substring(parameterStirng.indexOf("\\u")+6);
                logger.debug("The substring {} may contain unicode", parameterStirng);
            }
            buffer.append(parameterStirng);
        }
        return buffer.toString();
    }
    
}

测试结果截图如下:

技术分享


Unicode转中文

原文:http://my.oschina.net/dengjianming/blog/516183

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!