如何防止 wcf 在响应中添加转义字符?

Posted

技术标签:

【中文标题】如何防止 wcf 在响应中添加转义字符?【英文标题】:How to prevent wcf from adding escape characters to response? 【发布时间】:2020-11-02 19:40:48 【问题描述】:

我使用 WCF 作为服务器,使用 android 应用作为客户端。 如果响应包含转义字符,我在解析 android 中的响应时遇到问题,例如用户输入他的名字 "mohammed \\ main center // 77132131 " 数据库中的值。 输入的数据库中的用户名包含反斜杠和for-slash。 WCF 创建此响应:

"[\"name\":\" mohammed \/\/ main center \\\\\\\\ 77132131 \"]"

我在 WCF 服务器中尝试过,但问题仍然存在于代码中

string str = JsonConvert.SerializeObject(data);

我尝试在 android 中替换所有反斜杠,但在数据库中没有得到相同的值。

【问题讨论】:

【参考方案1】:

如果你像你说的那样添加一个字符串,它应该是这样的:

"[\"name\":\"mohammed \\\\ main center // 77132131 \"]"

我创建了一个WCF服务进行测试,如果你使用代理类调用服务,你会得到如下字符串:

["name":"mohammed \\ main center // 77132131 "]

以下代码是服务端的实现类:

 public class Calculator : ICalculator
    
        public string Test(string test)
        
            return "[\"name\":\"mohammed \\\\ main center // 77132131 \"]";
        
    

【讨论】:

以上是关于如何防止 wcf 在响应中添加转义字符?的主要内容,如果未能解决你的问题,请参考以下文章

如何防止 SQL 注入转义字符串

从 WCF 服务返回的 JSON 数据包含转义字符

springboot去掉字符串转义字符

如何防止 PHP PDO 通过 jQuery AJAX 插入 MySQL varchar 中的转义字符

如何防止 Jsoup 转义 html?

Java:JSON字符串在Java中已经转义过了,如何再拼接函数呢