C#에서 자바 스크립트 이스케이프 함수 대신 사용할 수있는 대체 문자열은 무엇입니까? 예를 들어 문자열을 가정합니다. "하이 포스터가 실종되었습니다/당신"은 "안녕하세요 % 20Foster % 27s % 20i % 27m % 20missing % 20/당신 "우리는 자바 스크립트 이스케이프 함수를 사용하지만, C#에 대한 대안은 무엇입니까. 나는 그것을 찾았지만 아무 쓸모가 없다.자바 스크립트 이스케이프 함수에 대한 C# 대안
답변
string myString = "Hello my friend";
myString = myString.Replace(" ", "%20");
이렇게하면 "% 20"이 (가) ""로 바뀝니다.
원하는 게 맞습니까?
HttpUtility.UrlEncode()는 이것을 수행합니다 – Emmanuel
내가 본 최고의 해결책은이 블로그에 언급되어 있습니다. C#: Equivalent of JavaScript escape function Kaushik Chakraborti. 자바 스크립트를 단순히 이스케이프하는 것보다 url 인코딩을 사용하거나 공백을 엔터티로 바꾸는 것 이상의 것이 있습니다.
+1 예 'escape' 함수는 고유 한 짐승이며 URLEncode는 단순히 동일하게 동작하지 않습니다. –
@Dan Diplo : thnx 버디,하지만 난 이미 그것을 보았다. 아무 것도 사용하지 않았다. – FosterZ
내가 게시 한 답변에서이 기능에 대한 리플렉터 코드를 포함했다. –
다음은 Microsoft.JScript.dll에서 찾을 수 escape
기능 구현 ... 리플렉터에서 촬영
[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 번호 : Kaushik이 Chakraborti하여 자바 스크립트의 탈출 기능과 동일합니다. 자바 스크립트를 단순히 이스케이프하는 것보다 url 인코딩을 사용하거나 공백을 엔터티로 바꾸는 것 이상의 것이 있습니다.
나는 KodeSharp 기사의 또 다른 해답을 발견했습니다. 이 주석은 UTF-8과 더 잘 호환되며 JScript에 대한 참조가 필요 없다고 말합니다. 이게 더 좋은가요?
using System.Web.Script.Serialization;
JavaScriptSerializer serialiser = new JavaScriptSerializer();
serialiser.Serialize("some \"string\"")
이 솔루션을 사용해 보았지만 Javascript unescape은 "deserialize"하지 않았습니다. 리셀러에게 실제로 무엇을하는지 보려면 그것을 던져야합니다. – evodev
(종속 System.Web.Extensions.dll)에
당신은 사용할 수 있습니다
string encoded = HttpUtility.JavaScriptStringEncode(str);
참고 : 당신은 적어도 ASP.NET 4.0 위의 코드를 실행해야 .
- 1. 자바 스크립트 onUnload에 대한 대안
- 2. 자바 스크립트 clientHeight 및 대안
- 3. 자바 스크립트 텔넷 시스템의 대안
- 4. ereg 함수에 대한 두 가지 대안 찾기
- 5. 타이 자바 스크립트 함수에 버튼
- 6. 함수에 대한 C 포인터
- 7. "canvas.toDataURL ("image/png ");"에 대한 대안 " 자바 스크립트?
- 8. 자바 스크립트 XML 구문 분석 또는 대안
- 9. 자바 스크립트 함수에 2 값 전달
- 10. 왜 자바 스크립트 이스케이프 기능이 @ */+를 무시합니까?
- 11. 자바 스크립트 분할 기능 - 이스케이프 문자 사용?
- 12. 자바 스크립트 정규식 바꾸기 - 이스케이프 슬래시
- 13. 자바 스크립트 리터럴 문자열에 사용되는 이스케이프 문자
- 14. 자바 스크립트 정규식, 이스케이프 문자를 사용하려면?
- 15. 자바 스크립트 및 jQuery 이스케이프 인용문
- 16. 자바 스크립트 이스케이프 HTML 내에서 코드
- 17. 수정/탈출 자바 스크립트 이스케이프 문자?
- 18. 자바 스크립트 함수에 html 값 전달
- 19. 자바 스크립트 함수에 범위 문제가 있습니다.
- 20. 자바 스크립트 객체 내부의 함수에 액세스
- 21. 자바 스크립트 (jquery) 함수에 변수 보내기
- 22. Javascript 개체 (자바 스크립트) 내에서 함수에 액세스
- 23. 자바 스크립트 함수에 정수를 전달하는 방법은 무엇입니까?
- 24. 자바 스크립트 함수에 약간의 변경이 필요합니다.
- 25. C++ 함수에 대한 parsec 파서?
- 26. 함수에 대한 C++ 정적 포인터
- 27. radiobuttonlist에 대한 자바 스크립트
- 28. JavaScriptMVC에 대한 경험을 공유하십시오, 대안
- 29. C/C++의 Lua 함수에 대한 참조
- 30. erb의 자바 스크립트 배열에 루비 배열을 사용하십시오. 따옴표를 이스케이프
무엇을하려고합니까? –
남자, 나는 followin '테스트를했지만 그들 중 누구도 작은 따옴표 "'"를 대체하지 않습니다. Uri.EscapeDataString ("텍스트") Uri.EscapeUriString ("텍스트") System.Web.HttpUtility.UrlEncode ("텍스트") System.Web.HttpUtility.UrlPathEncode ("일부 thext") – FosterZ