zoukankan      html  css  js  c++  java
  • java

    因为python传json默认是unicode,所以经常会碰到java调用python接口返回unicode乱码问题。

    类似:

    u8d34u5427u5373u767eu5ea6u8d34u5427uff0cu662fu767eu5ea6u65d7u4e0bu72ecu7acbu54c1u724cuff0cu5168u7403u6700u5927u7684u4e2du6587u793eu533au3002

    用下面的方法可以直接转换返回的json字符串,亲测好用-。-

    来源:https://blog.csdn.net/a214919447/article/details/54601832

    // unicode -> 汉字
        public static String decodeUnicode(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') {
                        // Read the xxxx
                        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   \uxxxx   encoding.");
                            }
    
                        }
                        outBuffer.append((char) value);
                    } else {
                        if (aChar == 't')
                            aChar = '	';
                        else if (aChar == 'r')
                            aChar = '
    ';
                        else if (aChar == 'n')
                            aChar = '
    ';
                        else if (aChar == 'f')
                            aChar = 'f';
                        outBuffer.append(aChar);
                    }
                } else
                    outBuffer.append(aChar);
            }
            return outBuffer.toString();
        }
  • 相关阅读:
    第一次作业
    机器学习第一次个人作业
    第02组 Beta版本演示
    第02组 Beta冲刺(4/4)
    第02组 Beta冲刺(3/4)
    微信小程序信息会话列表删除功能
    微信小程序自定义弹窗组件
    微信小程序使用Echarts
    uni.showModal,uni.showToast使用
    Array filter() 方法
  • 原文地址:https://www.cnblogs.com/clamp7724/p/13948807.html
Copyright © 2011-2022 走看看