zoukankan      html  css  js  c++  java
  • &#x编码转换成汉字

    import java.io.UnsupportedEncodingException;
    
    public class UnicodeDecoder {
        public static String escape(String src) {
            int i;
            char j;
            StringBuffer tmp = new StringBuffer();
            tmp.ensureCapacity(src.length() * 6);
            for (i = 0; i < src.length(); i++) {
                j = src.charAt(i);
                if (Character.isDigit(j) || Character.isLowerCase(j) || Character.isUpperCase(j))
                    tmp.append(j);
                else if (j < 256) {
                    tmp.append("%");
                    if (j < 16)
                        tmp.append("0");
                    tmp.append(Integer.toString(j, 16));
                } else {
                    tmp.append("%u");
                    tmp.append(Integer.toString(j, 16));
                }
            }
            return tmp.toString();
        }
    
        public static String unescape(String src) {
            StringBuffer tmp = new StringBuffer();
            tmp.ensureCapacity(src.length());
            int lastPos = 0, pos = 0;
            char ch;
            while (lastPos < src.length()) {
                pos = src.indexOf("%", lastPos);
                if (pos == lastPos) {
                    if (src.charAt(pos + 1) == 'u') {
                        ch = (char) Integer.parseInt(src.substring(pos + 2, pos + 6), 16);
                        tmp.append(ch);
                        lastPos = pos + 6;
                    } else {
                        ch = (char) Integer.parseInt(src.substring(pos + 1, pos + 3), 16);
                        tmp.append(ch);
                        lastPos = pos + 3;
                    }
                } else {
                    if (pos == -1) {
                        tmp.append(src.substring(lastPos));
                        lastPos = src.length();
                    } else {
                        tmp.append(src.substring(lastPos, pos));
                        lastPos = pos;
                    }
                }
            }
            return tmp.toString();
        }
    
        public static void main(String[] args) throws UnsupportedEncodingException {
            String str = "现金帐户";
            String name = str.replace("&#x", "%u");
            String name2 = name.replace(";", "");
            String str2 = unescape(name2);
            System.out.println("newStr: " + str2);
        }
    }
  • 相关阅读:
    如何用Percona XtraBackup进行MySQL从库的单表备份和恢复【转】
    8款实用Sublime text 3插件推荐
    windows下配置nginx+php环境
    Windows10+Ubuntu双系统安装[
    window yii2 安装插件 报yiisoft/yii2 2.0.x-dev requires ext-mbstring错
    Composer常见问题
    Yii2中如何使用CodeCeption
    php 单进程SAPI生命周期
    php的SAPI,CLI SAPI,CGI SAPI
    HTTPS服务器配置
  • 原文地址:https://www.cnblogs.com/kongxianghao/p/8806528.html
Copyright © 2011-2022 走看看