2011-11-07 3 views
2

정말 익숙하지 않은 문자 인코딩에 관한 한 가지 메커니즘이 있습니다. 자세한 내용을 알고 싶습니다. 웹 응용 프로그램에서 제어 할 수있는 방법을 알고 싶습니다.HTTP POST에서받은 데이터의 인코딩을 결정하는 것은 무엇입니까?

사용자가 내 웹 사이트에서 ASCII가 아닌 문자 (예 : "ä æ à à")를 붙여 넣을 때 게시 할 양식으로 말하면 정확히 무엇이 발생하며 어떻게 결정됩니까? 나는이 캐릭터 세트 ISO-8859-1 사용하여 HTML 페이지로 이동하면

예를 들어, :

<HEAD> 
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"> 

을 내가있는 창으로 "A æ é à"을 cut'n'paste 유니 코드 문자를 사용하여 올바른 "ä æ é à" 문자를 참조하십시오.

iso-latin-1로 인코딩 된 페이지를 읽을 때 브라우저가 문자를 인코딩으로 변환 한 다음 다른 창에 붙여 넣을 때이 문자를 다시 변환 했습니까?

웹 페이지의 양식을 게시 할 때 사용할 인코딩을 프로그래밍 방식으로 "강제 적용"할 수 있습니까?

브라우저가 문자를 올바르게 보내거나 인코딩해야합니까?

양식에 사용 된 인코딩이 웹 페이지에서 사용 된 인코딩과 다른 모양 일 수 있습니까? (예를 들어, 페이지가 iso-latin-1인데도 UTF-8로 게시 할 수 있습니다 ... 그 일을하고 싶지는 않습니다. 단지 후드에서 무슨 일이 일어나는지 이해하는 것입니다).

내 질문에 따라 달라질 수 있습니다. "인코딩 문제가 발생하지 않도록하려면 어떻게해야합니까?"하지만 누군가 나에게 위의 것을 설명 할 수 있다면 나는 현재 진행되고있는 것에 관해 훨씬 더 선명한 그림을 가지고있을 것입니다.

답변

2

브라우저는 제출할 양식이 포함 된 페이지의 HTTP Content-Type 응답 헤더의 charset 속성에 지정된 인코딩과 동일한 인코딩을 사용합니다. 당신은 다른 사람의 사이에서 Firebug의 도움으로 자신의 사이트를 확인할 수 있습니다

enter image description here

<meta> 태그의 일에만 전체 HTTP Content-Type 응답 헤더가 발생할 수있는 완전히 결석 때 사용됩니다 서버가 설정하지 않은 경우 (매우 드뭅니다) 또는 웹 페이지를 로컬 디스크 파일 시스템에 저장 한 다음 file:// 프로토콜을 사용하여 볼 때.

문자 인코딩 문제가있는 경우 사용자 (또는 서버)가 HTTP Content-Type 응답 헤더에 charset 특성을 설정하지 않은 것으로 보입니다. 이 경우 브라우저는 사용할 기본 charset 인 문자셋을 스스로 결정하지만 웹 페이지 콘텐츠를 기반으로하는 "스마트 추측"을 기반으로하는 일부 경우 (예 : Firefox). <meta> 태그의 태그는 좋은 대체 기호이지만 HTTP를 통해 페이지가 제공 될 때는 사용되지 않습니다.

귀하의 질문에 당신은 Java 개발자이므로 JSP/Servlet 페이지 (또는 JSP/Servlet 기반 프레임 워크)를 다룰 가능성이 있으므로이 기사가 유용 할 수 있습니다. Unicode - How to get the characters right?

+0

+1 고맙습니다 ... 실제로, JSP를 사용하는 Java 웹 애플리케이션 용입니다. 그래서 나는 그 기사를 큰 관심과 함께 읽을 것이다.) –

관련 문제