2

我正在尝试将用于富文本框的值插入到 mysql 字段中。由于 mysql 不会按字面意思对待\\\r我想用 替换所有出现\\\。我努力了:

mystring.Replace(@"\", @"\\");

但它不适用于\r,\n等。我还能怎么做呢?

编辑: 我的输入看起来像:

\rtf1\ansi\ansicpg1252\deff0\r\n

我的输出应该是这样的:

\\rtf1\\ansi\\ansicpg1252\\deff0\r\n

谢谢。

4

2 回答 2

5

尝试:

Regex.Escape(mystring);

请参阅:使用 C# 和 ASP.Net 在 MySQL 中转义特殊字符

例子:

var data = "this is \n a \r\ntest";
var result = Regex.Escape(data); // this\ is\ \n\ a\ \r\ntest

//replace escaped spaces
Console.Write(result.Replace(@"\ ", " ")); // this is \n a \r\ntest
于 2013-07-03T02:17:26.673 回答
0

这对我有用:

var mystring = @"\rtf1\ansi\ansicpg1252\deff0\r\n";
mystring = mystring.Replace(@"\", @"\\");

产量

\\rtf1\\ansi\\ansicpg1252\\deff0\\r\\n

我能想到的唯一的事情是:

  • 反斜杠是否已经被取消转义mystring
  • 您是否正在获取 .Replace() 的结果,而不仅仅是保留mystring
于 2013-07-03T02:17:29.063 回答