zoukankan      html  css  js  c++  java
  • WebService中控制字符的处理

    情景

        最近项目中很多WebService都发不出去,报的错误如下:
     
     Invalid white space character in text to output (in xml 1.1, could output as a character entity)
     
    代码如下
        private String excuteRealTimeExchange(PadisPackageType reqPackage) {
            String result;
            try {
                result = rte.execute(JaxbUtils.convertPadisObjectToXml(reqPackage));
            } catch (Exception e) {
                throw new PadisException(".....");
            }
            return result;
        }
     
    之前一直以为是网络原因,导致webserivce发不出去。今天调试,才发现是因为报文中有控制字符,所以才抛出错误。
     

    原因

    XML支持的字符是有限的,详细请看:
     
    特殊字符如控制字符是不被支持的
     

    解决

    在发送XML的时候,把不合法的控制字符都去掉。
    方法如下:
     
        public static String trimAllISOControl(String str) {
            if (!hasLength(str)) {
                return str;
            }
            StringBuilder sb = new StringBuilder(str);
            int index = 0;
            while (sb.length() > index) {
                if (Character.isISOControl(sb.charAt(index))) {
                    sb.deleteCharAt(index);
                } else {
                    index++;
                }
            }
            return sb.toString();
        }
     
     




  • 相关阅读:
    锻炼意志力
    iOS 函数积累
    iOS8新特性 计算 cell 的高度
    iOS 国际化支持 设置
    CALayer 方法属性整理
    好的 blog 整理
    xcode7 打包上传至 app store
    ios 适配 (字体 以及 控件)
    iOS 适配设计与切图
    iOS app 切图
  • 原文地址:https://www.cnblogs.com/lostpaddle/p/3180988.html
Copyright © 2011-2022 走看看