2009-11-02 19 views

回答

1

我得到了解決方案。

parameter.Replace("\\", "\\\\")解決它。

2

\是一個特殊字符 - 基本上它「逃脫」後的字符。嘗試通過\\來代替。順便說一句 - 如果你使用的是C#,你可以在字符串之前使用@字符,以避免需要將它作爲雙斜線來傳遞。

string path = @"c:\documents\mydocuments"; 
0

您是否使用ASP.NET編寫JavaScript字符串文字?即。是這樣的:

Page.RegisterStartupScript("foo", 
    "<script type='text/javascript'>"+ 
    " var bar= '"+myBarValue+"';"+ 
    "</script>" 
); 

如果是這樣,一個分隔的JavaScript字符串裏面,那麼你嵌入文本文字,你必須使用遵循字符串文本中的語法的逃脫方案。特別是文本中的任何\字符都必須使用\\進行轉義,並且任何'字符必須替換爲\',因爲這是在這種情況下使用的分隔符(JavaScript可以使用任何類型的引號來分隔字符串)。

更重要的是,如果您像上例中那樣使用內聯<script>塊,則實際上是將文本嵌入到HTML元素的字符串文本中,因此您也必須執行一些HTML轉義。特別是你必須分解文本中的任何</序列,因爲那會結束腳本塊。另外,在XHTML中,沒有CDATA元素,因此您還必須使用&符號 - 在文本中轉義任何<&字符,但這樣會使其與傳統HTML解析器不兼容。因此,爲了解決所有這些問題,最好使用JavaScript字符串文字轉義,將<替換爲\x3C&以及\x26

理想情況下,你會做的就是將簡單的字符串傳遞給JSON編碼器庫,這會爲JavaScript適當轉義它。但是我不知道一個.NET會像上面那樣爲你轉義HTML,所以你仍然需要一些替換。

相關問題