调用webservice接口,报错:(十六进制值0x01)是无效的字符

摘要:
#事故现场调用webservice接口,报错:是无效的字符。

#事故现场

调用webservice接口,报错:(十六进制值0x01)是无效的字符。
如图:
在这里插入图片描述
意思是webservice返回的信息中包含无效的字符,无法解析成xml;

#分析

使用postman向webservice发送请求,请求成功,返回了数据,但在数据中发现了一些莫名其妙的字符,如图:
在这里插入图片描述
因数据来源数据库,故去数据库中查询,果然又发现,如图:
在这里插入图片描述
将异常文本复制到notepad++中,显示的是:SOH
在这里插入图片描述
SOH是ASCII中的控制字符,start of heading的缩写,报文头的意思;

在ASCII码中,第0~31号及第127号(共33个)是控制字符或通讯专用字符,如控制符:LF(换行)、CR(回车)、FF(换页)、DEL(删除)、BS(退格)、BEL(振铃)等;通讯专用字符:SOH(文头)、EOT(文尾)、ACK(确认)等。
在这里插入图片描述

#解决方法

故取数据的时候要过滤掉这些字符,以C#代码为例:

/// <summary>
/// 过滤不可见字符
/// </summary>
/// <param name="sourceString">原始字符</param>
/// <returns>删除后结果</returns>

public string DeleteControlChar(string sourceString)
{
       System.Text.StringBuilder sBuilder = new System.Text.StringBuilder();
       for (int i = 0; i < sourceString.Length; i++)
       {
            int Unicode = sourceString[i];
            if (Unicode > 31 && Unicode != 127)
            {
                sBuilder.Append(sourceString[i].ToString());
            }
       }
     return sBuilder.ToString();
}

免责声明:文章转载自《调用webservice接口,报错:(十六进制值0x01)是无效的字符》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇ffmpeg使用参数说明一、Windows下Git的安装与配置下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

《设计模式之禅》六大设计原则2

接口隔离原则 接口隔离原则的定义 接口分为两种: ● 实例接口(Object Interface),在Java中声明一个类,然后用new关键字产生一个实 例,它是对一个类型的事物的描述,这是一种接口。Java中的类也是一种接口。 ● 类接口(Class Interface),Java中经常使用的interface关键字定义的接口。 那什么是隔离呢?它有两种...

MSComm控件使用详解

MSComm 控件通过串行端口传输和接收数据,为应用程序提供串行通讯功能。MSComm控件在串口编程时非常方便,程序员不必去花时间去了解较为复杂的API函数,而且在VC、VB、Delphi等语言中均可使用。 Microsoft Communications Control(以下简称MSComm)是Microsoft公司提供的简化Windows下串行通信编程...

shell学习笔记之正则表达式

一:知识背景 sed -i ' /PermitRootLogin no/ s/^.*$/PermitRootLogin yes/g' /etc/ssh/sshd_config 正则表达式的作用实在太强大了!!!! linux三剑客grep、awk、sed的强大是和正则分不开的,正则说到最基本的就是:从文件或者命令输出过滤文本。正则就是一些特殊字符串的集合...

Linux--vi/vim编辑器常用命令

使用vi文本编辑器 配置文件是Linux系统中的显著特征之一,其作用有点类似于Windows系统中的注册表,只不过注册表是集中管理,而配置文件采用了分散的自由管理方式。那么如何使用Linux字符操作界面中的文本编辑器——vi,以便更好地管理和维护系统中的各种配置文件。 vi是一个功能强大的全屏幕文本编辑工具,一直以来都作为类UNIX操作系统的默认文本编辑...

NopCommerce架构分析之一----依赖类生成容器

NopCommerce为了实现松耦合的框架设计目的,使用了IOC框架:Autofac。据有人测试,Autofac是性能好的IOC工具。 1、在IOC中,组件首先需要在IOC中注册,有通过配置文件注册的,像Spring.net,也有通过特性注册的,像StructureMap,也有通过代理来注册的,像Autofac。但是IOC讲究一个原则,就是接口和实现分离。...

Unicode(UTF-8, UTF-16)令人混淆的概念

为啥需要Unicode       我们知道计算机其实挺笨的,它只认识0101这样的字符串,当然了我们看这样的01串时肯定会比较头晕的,所以很多时候为了描述简单都用十进制,十六进制,八进制表示.实际上都是等价的,没啥太多不一样.其他啥文字图片之类的其他东东计算机不认识.那为了在计算机上表示这些信息就必须转换成一些数字.你肯定不能想怎么转换就怎么转,必须得有...