2011-09-21 2 views
1

이 인코딩에 익숙하지 않습니다. 무엇이며 어떻게 C#으로 디코딩합니까?" u002522 u00253A 등"을 디코딩하는 방법 C#

\ u00257B \ u002522target_id \ u002522 \ u00253A \ u002522p \ u00257C29681347 \ u002522 \ u00252C + \ u002522prop_id \ u002522 \ u00253A \ u0025222 \ u002522 \ u00252C + \ u002522tid \ u002522 \ u00253A \ u0025221316132877 \ u002522 \ u00252C + \ u002522

답변

2

이 문자열이 C#과 같은 문자열 리터럴이라고 가정하면

string text = "\u00257B\u002522target_id\u002522\u00253A\u002522p..."; 

등으로 전혀 디코딩 할 필요가 없습니다. 그것은 단지 이스케이프 코드를 포함하는 문자열 리터럴입니다.

이스케이프 코드 \ udddd (여기서 dddd는 4 자리 숫자 임)는 유니 코드 문자 U + dddd를 나타냅니다. 8 자리 유니 코드 이스케이프 코드도 ​​인식됩니다 : \ Udddddddd.

따라서 은 문자 %을 나타냅니다.

문자열을 표시하면 (예 :

%7B%22target_id%22%3A%22p... 

출력은 URL 인코딩 된 문자열과 같습니다

Console.WriteLine(text); 

는 다음과 같은 출력을 얻을.

{"target_id":"p... 
+0

감사합니다. 실제로는 C# 문자열이 아닙니다. 그것은 일부 JSON 내가 실제로이 "\\ u00257B"및 C# 이스케이프 된 유니 코드 char 인식하지 못하는 것처럼 보이는 일부 자바 스크립트에 포함 된 포함되어 있습니다. 이 문제를 어떻게 해결할 것을 권하겠습니까? – JoeS

+0

그래서 URL로 인코딩 된 JSON이 JSON에 임베드되어 있습니까? 좋은 ... JSON 라이브러리를 사용하여 JSON을 구문 분석하고 이스케이프 처리되지 않은 문자열을 가져 오는 것이 좋습니다. 그런 다음 URL을 디코딩하고 JSON 라이브러리를 사용하여 URL 디코딩 된 이스케이프 처리되지 않은 문자열을 구문 분석하십시오. – dtb

0

키 값 쌍의 목록에 대한 유니 코드 표현입니다 :

string decoded = Uri.UnescapeDataString(text); 
// decoded == "{\"target_id\":\"p..." 

당신이

Console.WriteLine(decoded); 

는 당신이 얻을 디코딩 된 문자열을 다음과 같은 출력을 표시하는 경우 : 당신은이 Uri.UnescapeDataString Method 사용하여 디코딩 할 수 :

{ "target_id": "p | 29681347", + "prop_id": "2", + "tid": "13 16132877 ", +"

일반적인 System.Text.Encoding.Unicode 클래스로 디코딩 할 수 있습니다. 해당 문자열에

1

사용 System.Web.HttpUtility.UrlDecode는()

{"target_id":"p|29681347", "prop_id":"2", "tid":"1316132877", " 

이 명확하게 전체 문자열의 조각입니다 얻을 수 있습니다.

관련 문제