2013-07-03 101 views
2

我想插入將用於richtextbox到MySQL字段的值。由於mysql不會直接處理\\\r,我想用\\替換所有出現的\。我曾嘗試:如何替換反斜槓字符的所有實例?

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

,但它不工作\r\n,等我可以做這是怎麼回事?

編輯: 我的輸入是這樣的:

\ RTF1 \ ANSI \ ansicpg1252 \ deff0 \ r \ n

和我的輸出應該是這樣的:

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

謝謝。

+1

你的問題並沒有多大意義。請用更多的輸入和輸出示例重新說明。 –

+0

嘗試:Regex.Escape(mystring) 請參閱:http://stackoverflow.com/questions/5357831/escape-special-characters-in-mysql-using-c-sharp-and-asp-net – Romoku

回答

4

嘗試:

Regex.Escape(mystring); 

參見:Escape special characters in MySQL using C# and ASP.Net

例子:

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 
+0

哇,看起來像魔術一樣。謝謝:) – rtuner

+0

我很高興你覺得它有幫助。 – Romoku

0

這個工作對我來說:

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

產生

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

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

  • 有反斜槓已經在mystring轉義?
  • 你服用.Replace()的結果,而不是僅僅保持mystring