C# 在c中转义字符串中的双引号

C# 在c中转义字符串中的双引号,c#,.net,netduino,C#,.net,Netduino,我知道这已经被讨论过很多次了,但我仍然对所有的解决方案有问题 我需要构建一个字符串发送到JSON解析器,该解析器需要在其中加引号。我试过这些表格: string t1 = "[{\"TS\"}]"; string t2 = "[{" + "\"" + "TS" + "\"" + "}]"; string t3 = @"[{""TS""}]"; Debug.Print(t1); Debug.Print(t1); Debug.Print(t1); debug语句正确地显示了它[{TS}],但当我

我知道这已经被讨论过很多次了,但我仍然对所有的解决方案有问题

我需要构建一个字符串发送到JSON解析器,该解析器需要在其中加引号。我试过这些表格:

string t1 = "[{\"TS\"}]";
string t2 = "[{" + "\"" + "TS" + "\"" + "}]";
string t3 = @"[{""TS""}]"; 
Debug.Print(t1);
Debug.Print(t1);
Debug.Print(t1);
debug语句正确地显示了它[{TS}],但当我在调试器中查看它时,最重要的是当我将字符串发送到服务器端json解析器时,它包含转义字符: [{\TS\}]

如何去除实际字符串中的转义字符

debug语句正确地显示了它[{TS}],但是当我查看它时 在调试器中,最重要的是当我将字符串发送到 服务器端json解析器包含转义字符: [{\TS\}]

从调试器的角度来看,它将始终显示转义版本,因此作为开发人员,您可以确切地知道字符串值是什么。这不是一个错误。当您将其发送到另一个.Net系统时,它将再次从调试器的角度显示转义版本。如果您输出值Response.Write或Console.WriteLine,您将看到您期望的版本将出现在那里

如果突出显示调试器中的变量,并选择放大镜图标旁边的下拉列表,然后选择文本可视化工具,您将看到它是如何以纯文本显示的。这可能就是你要找的

根据您的评论,我想建议您也注意如何将字符串转换为字节。您希望确保以其他机器可以理解的格式对字节进行编码。确保使用以下命令将字符串转换为字节:

System.Text.Encoding.ASCII.GetBytes(mystring);

我暗自怀疑您发送的是字符串本身的位表示,而不是编码版本。

所有调试打印都在t1上。您的代码示例是否错误?您的Debug.Print语句都使用t1.BTW,这是无效的JSON。您确定JSON解析器中没有错误吗?在这三种情况下,您的代码看起来都很好。即使已修复打印每个字符串,它们都是相同的-它们仍然具有转义字符问题是,在服务器端,Linux is接收到带有转义字符的字符串,并且不理解它。如果您没有在服务器端正确检查字符串,或者你的问题是如何发送字符串,因为这里的代码很好,所以没有显示。我们需要更多的细节。我们需要知道linux机器是如何消耗您的数据的。到目前为止,您向我们展示的内容并不错误。在服务器端,我们正在查看Apache访问日志,以查看传入的HTTP数据。在客户端,我手动构建HTTP数据包并通过套接字发送。我正在手动构建HTTP数据包,这可能就是问题所在。把密码丢给我们。