什麼是替代javascript轉義函數在c#中的例如假設一個字符串:「你好福斯特我錯過/你」將給「你好%20Foster%27s%20i%27m%20missing% 20 /你「如果我們使用JavaScript轉義函數,但什麼是替代的C#。我已經找到它,但沒有用。C#替代javascript轉義函數
回答
string myString = "Hello my friend";
myString = myString.Replace(" ", "%20");
這將用「%20」替換所有「」。
這是你想要的嗎?
HttpUtility.UrlEncode()會替你 – Emmanuel 2010-03-23 13:16:53
我看到的最佳解決方案在此博客上提到 - C#: Equivalent of JavaScript escape function由Kaushik Chakraborti提及。除了簡單的url編碼或用實體替換空格外,還有更多的轉義javascript。
+1是的'escape'功能是一種獨特的動物和URLEncode的根本不相同的行爲。 – 2010-03-23 13:20:11
@丹DIPLO:日Thnx哥們,但i'hve已經看到了,沒有用 – FosterZ 2010-03-23 13:24:41
在我張貼的答案,我包括來自反射此功能 – 2010-03-23 13:25:29
以下是escape
功能的實現,你會發現Microsoft.JScript.dll從...反射採取
[NotRecommended("escape"), JSFunction(JSFunctionAttributeEnum.None, JSBuiltin.Global_escape)]
public static string escape(string str)
{
string str2 = "ABCDEF";
int length = str.Length;
StringBuilder builder = new StringBuilder(length * 2);
int num3 = -1;
while (++num3 < length)
{
char ch = str[num3];
int num2 = ch;
if ((((0x41 > num2) || (num2 > 90)) &&
((0x61 > num2) || (num2 > 0x7a))) &&
((0x30 > num2) || (num2 > 0x39)))
{
switch (ch)
{
case '@':
case '*':
case '_':
case '+':
case '-':
case '.':
case '/':
goto Label_0125;
}
builder.Append('%');
if (num2 < 0x100)
{
builder.Append(str2[num2/0x10]);
ch = str2[num2 % 0x10];
}
else
{
builder.Append('u');
builder.Append(str2[(num2 >> 12) % 0x10]);
builder.Append(str2[(num2 >> 8) % 0x10]);
builder.Append(str2[(num2 >> 4) % 0x10]);
ch = str2[num2 % 0x10];
}
}
Label_0125:
builder.Append(ch);
}
return builder.ToString();
}
代碼。
var unescapedString = Microsoft.JScript.GlobalObject.unescape(yourEscapedString);
var escapedString = Microsoft.JScript.GlobalObject.escape(yourUnescapedString);
我已經看到了這個博客中提到的最佳解決方案 - C#:通過考希克Chakraborti的JavaScript逃生功能等效。除了簡單的url編碼或用實體替換空格外,還有更多的轉義javascript。
我注意到KodeSharp文章中的另一個解決方案可能更好。該評論表示它與UTF-8更兼容,並且不需要引用JScript。這是否更好?
(取決於System.Web.Extensions.dll)
using System.Web.Script.Serialization;
JavaScriptSerializer serialiser = new JavaScriptSerializer();
serialiser.Serialize("some \"string\"")
我試過這個解決方案,而是使用Javascript UNESCAPE沒有「反序列化」了。我將不得不把它扔進Refelector,看看它真的做了什麼。 – evodev 2013-07-11 15:13:10
您可以使用:
string encoded = HttpUtility.JavaScriptStringEncode(str);
注:你至少需要ASP.NET 4.0運行上面的代碼。
- 1. Javascript替代FBJS函數getAbsoluteLeft
- 2. C# - 每個字符的JavaScript轉義()替代?
- 3. 在Facebook中替代isNaN()javascript函數?
- 4. css轉換的替代promise()函數
- 5. 轉換javascript函數C#(轉換問題)
- 6. 如何將模板函數(Arduino)轉換爲替代(C)
- 7. 用C替換函數定義
- 8. 替代函數重載用C
- 9. OpenGL函數ChangeDisplaySettings(C++)的替代
- 10. JavaScript替換函數
- 11. 將C函數轉換爲Objective C還是包含C庫的替代方法?
- 12. Round函數替代
- 13. 替代Len函數
- 14. 代替函數名
- 15. 在javascript中掛鉤函數代替現有函數
- 16. 把c#代碼轉成mysql函數
- 17. 用UserStyle替換JavaScript函數
- 18. jQuery的替換JavaScript函數
- 19. jquery window.getSelection()函數的替代函數
- 20. DISTINCT函數的替代函數
- 21. 替代函數語法/函數原型?
- 22. 轉換JavaScript函數
- 23. 用替換(netsuite)轉義引號javascript
- 24. JavaScript函數定義
- 25. Javascript函數定義
- 26. 從php代碼函數調用javascript函數沒有定義
- 27. php代碼調用javascript函數返回函數沒有定義
- 28. oracle轉義函數
- 29. JavaScript數組 - 替代arr [arr.indexOf()]?
- 30. jquery .find()函數的替代?
你想做什麼? – 2010-03-23 13:16:35
夥計們,我已經測試過followin',但沒有一個取代單引號「'」。 Uri.EscapeDataString( 「一些文本」) Uri.EscapeUriString( 「一些文本」) System.Web.HttpUtility.UrlEncode( 「一些文本」) System.Web.HttpUtility.UrlPathEncode( 「一些thext」) – FosterZ 2010-03-23 13:21:41