2013-08-02 32 views
3

我在這裏有一個小問題。我試着「與\」試圖取代'字面C#

我試圖串以下列方式替代方法來代替漢字:

1.

string test = "HISTOIRE D'O, CHAPITRE II"; 
test = test.Replace("'","\'"); 

沒有在字符串測試改變是一樣的聲明

2.

string test = "HISTOIRE D'O, CHAPITRE II"; 
test = test.Replace("'","\\'"); 

這將對我的字符串這樣的「HISTO IRE D \'O,CHAPITRE II「;

在Google上還沒有發現任何東西

感謝您的幫助。

+3

我能問你爲什麼這樣做?如果要避免SQL注入,則應該使用參數化SQL。 –

+0

你應該接受這些答案之一.. –

回答

5

你的第二個代碼是正確的。

這將我的字符串格式化爲這樣「HISTOIRE D \'O,CHAPITRE II」;

不,它確實沒有。這就是它在調試器中看起來的方式,但是如果將其轉儲到控制檯或類似的東西,則會看到只有一個反斜槓。

作爲替代方案,你可以使用一個逐字字符串:

test = test.Replace("'", @"\'"); 
+0

你的權利,在看調試器,thx – gangfish

1

你的第二個案例似乎是正確的。看起來這只是如何在debubber中看起來像。嘗試在控制檯上書寫,你會看到預期的結果。

enter image description here

您可以使用verbtaim string literal代替;

string test = "HISTOIRE D'O, CHAPITRE II"; 
test = test.Replace("'", @"\'"); 
0

你的第二個例子是工作,但是當你看看結果在調試器是「有益」,加入了新的反斜槓,它避開反斜槓。

如果您將結果打印到控制檯窗口,您應該看到您的期望。

0
test = test.Replace("'", @"\'"); 
0

這應該做的伎倆:

string test = "HISTOIRE D'O, CHAPITRE II"; 
test = test.Replace("'", @"\'");