2012-09-06 2 views
0

"[email protected]@[email protected]@"과 같은 문자열이 있습니다.C#에서 문자열 디코딩

원래 문자열 내가 그것을 해독 할 필요가 "Akzo Nobel N.V."

입니다. 나는 이런 식으로 시도했다.

public static string Decode(string query) 
{ 
    string dSData = HttpUtility.UrlDecode(query.ToString()); 
    return dSData; 
} 

나는 이것을 원래의 문자열로 디코딩 할 수 없다. 제발 해독 도와주세요.

+2

그리고이 인코딩 된 문자열을 어떻게 얻을 수 있습니까? –

+2

어떻게 인코딩 되었습니까? –

+0

인코딩의 정확한 유형을 알아야합니다. 인코딩 된 문자열은 어디에서 왔으며, 인코딩 한 사람은 누구입니까? – Treb

답변

1

더 많은 입력이 더 나은 디코딩 루틴을 제공합니다. (46 인 그래서.) xx는 ASCII 캐릭터 진수 인 XX의 @

공백 밑줄로 대체된다 : 그것은 포맷 같다

+0

이것은 OP가 처리해야하는 유일한 두 가지 대체품이라는 가정을 기반으로합니다. +1하지만, 나는 당신이 그것을 알고 있다고 생각하고, 당신의 코드가 자리하고있다. –

0

'인코딩 된'버전의 공백 및 전체 정지 문자가 있다면, string.replace를 호출하고 '_'및 '@ 46 @'을 ' ". http://msdn.microsoft.com/en-us/library/fk49wtc1.aspx. 가능하다면 다른 ASCII 인코딩을 사용하여 올 수 있습니다. 올바른 방법 (아마도 인코딩 된 동일한 클래스/라이브러리의)을 사용하여 올바른 방법으로 디코딩해야합니다.

-1

이다.

홈페이지 작성 URL 인코딩 메커니즘처럼 보이지만 잘못되었을 수 있습니다.

그래서 원하는 것은 @[0-9]{1,3}@과 같은 것을 찾고 ASCII 코드가 나타내는 실제 문자로 바꾸는 정규식입니다.

공백으로 _ 이외의 다른 직선 대체가있을 수 있지만 그 정도는 말할 수 있습니다.

+0

그것은 어떤면에서 관련이 있습니까? – PhonicUK

+1

string.replace 응답은 _ 및 @ 46 만 정렬합니다. 정규 표현식은 인코딩을 결정한 것을 기반으로 모든 잠재적 인 값을 정렬하는 데 필요합니다. @ 64가 들어있는 다른 문자열을 디코딩하면 어떻게 될까요? (@ 문자 여야 함) 모든 조합을 찾으려면 정규식이 필요합니다. string.replace는 복잡한 패턴을 찾는 용도로는 사용되지 않지만 물론 정적 문자열에는 regexp.replace를 사용하지 않습니다. – PhonicUK