2014-11-11 1 views
2

나는이 내 쿼리 문자열에서이 - sug_zehut을 = ז
나는이 나쁜 관행 것을 잘 알고 있어요하지만, 내가받을 수있는얻기 없음 영어 문자

(ז하는 히브리어 문자) 그것은 내 쿼리 문자열 (안 내 코드 ..)

내가 그것을 숨겨진에 쓸 때 나는 querystring의 일부로 sug_zehut = % EF % BF % BD를 얻고 그것을 넣으려고 할 때 문자열과 숨겨진에 넣어, 나는 얻을 (내가 그 here 그 두 동일한 것을 발견).

아무튼, 질문은 - 변수에 ז 값을 어떻게 얻습니까?

(.net 버전 4를 사용 중입니다.)

감사합니다.

+0

월이 도움말 당신 : http://stackoverflow.com/questions/2742852/unicode-characters-in-urls – Aki

+0

_ " 나는 그것을 숨겨진 "_에 써 넣는다. 정말로 코드를 게시해야한다. JavaScript와 UTF-8의 유니 코드를 사용하고 있습니까? 이'encodeURIComponent'를 다루는 방법으로 만들어졌지만 어디에서 어디로 가느냐에 달려 있습니다. 대답을 원하면 문제를 재현하는 코드 스 니펫을 게시하십시오. –

답변

2

% EF % BF % BD는 sumbol의 코드입니다. 즉, 한 인코딩으로 심볼을 보내서 UTF-8로 가져 오기 때문에 서버가이 문자를 알지 못하는 것입니다. 페이지에서 Web.config의 http://msdn.microsoft.com/en-us/library/ydkak5b9(v=vs.71).aspx

  • 에서

    1. <meta charset="utf-8"> vs <meta http-equiv="Content-Type">
    2. 변경의 실제 :

      시도 (적어도 문제의 테스트를 위해) 모든 장소에서 UTF-8 인코딩을 설정하는 기호를 직접 설정하는 경우 파일 인코딩 (.cs, .cshtml, .aspx, .js, ...)

    작동하지 않는 경우이 URL을 어떻게 가져 와서 탐색 할 수 있는지 말해주십시오.

  • +0

    OP가 숨겨진 필드에 대해 이야기하는 것처럼 브라우저도 UTF-8 인코딩으로 설정되어야합니다. 맞습니까? –

    0

    다음은 캐릭터를 HTML로 인코딩 된 버전 (이 경우 & # 1494)으로 변환하는 작은 기능입니다. HtmlEncode는 불행히도 .net의 대부분의 버전에서 당신을 위해 그것을하지 않을 것입니다.

    private static string UnicodeConvertChar(char input) 
    { 
        if (input > 159) 
        { 
         return "&#" + ((int)input).ToString() + ";"; 
        } 
        else 
        { 
         return input.ToString(); 
        } 
    } 
    

    당신은 당신의 숨겨진 필드를 설정하기 전에 변환 할 수 있습니다, 당신은 그것을 다시 얻을 때 다음, 당신은 단순히 HttpUtility.HtmlDecode를 사용하여 읽을 수 있습니다. 여기

    은 당신이 그것으로 놀러위한 dotnetfiddle의 : https://dotnetfiddle.net/jbDY0V