2010-07-01 4 views
1

Google 웹 앱의 경우 텍스트 영역을 포함하는 여러 HTML 페이지가 있습니다. 우리의 모든 페이지는 ISO-8859-1 charset으로 렌더링됩니다. Windows 컴퓨터에서 IE6을 통해 페이지에 액세스하고 "스마트 견적"과 같은 특수 문자가 텍스트 영역에 복사되면 일부 페이지는 Windows 1252 문자 인코딩을 사용하여 페이지를 제출합니다. 다른 페이지에서는 UTF-8 문자 인코딩을 사용하여 페이지가 전송 된 것처럼 보입니다. 나는 다음과 같은 숨겨진 필드를 사용하여 문자 인코딩을 제출 추적했습니다 : 윈도우 1252에제출 된 문자 인코딩 _charset_ 숨김 필드

<input type="hidden" name="_charset_" /> 

는 문자 인코딩 페이지를 제출, 우리는 "창-1252"의 값을받을 수 있습니다.

UTF-8 제출 문자 인코딩 페이지에서 공백 값이 수신됩니다.

백엔드에서는 ISO-8859-1을 사용하고 있습니다. 이상적으로 우리는 문자 인코딩을 전송하기를 원하지만, IE 6에서는 그 동작을 강요하는 옵션을 보지 못합니다. Windows 1252와 UTF-8 사이의 선택을 감안할 때, Windows 1252에 콘텐츠를 제출하는 것이 더 좋을 것입니다. ISO-8859-1에서 페이지를 다시 렌더링 할 때 올바르게 렌더링됩니다.

일부 페이지가 한 문자 인코딩으로 제출되는 이유는 무엇입니까?

1) IE6이 의 문자셋을 반환하면 실제로는 UTF-8과 같습니까? 제출 문자 인코딩이 UTF-8이거나 항상 사용할 문자 인코딩을 올바르게 결정할 수없는 경우에만 IE 6이 공백 문자 세트를 반환합니까?

2) IE6에서 일부 페이지에서 Windows 1252를 선택하고 다른 페이지에서 UTF-8을 선택할 때 발생할 수있는 차이점은 무엇입니까? 페이지를 UTF-8 문자 및 accept-charset 속성으로 스캔 했으므로 찾을 수 없습니다.

추가 참고 : charset 숨겨진 입력에 대한 정보가 다음 링크에서 발견되었습니다.

http://web.archive.org/web/20060427015200/ppewww.ph.gla.ac.uk/~flavell/charset/form-i18n.html

+0

HTML 양식에 "charset = ..."속성이 있습니까? 그렇지 않은 경우 추가하십시오. –

+0

"windows-1252"및 "iso-8859-1"을 사용하여 "accept-charset"을 양식에 제공하려고했습니다. 이것은 행동에 어떤 차이도 나타나지 않았다. 이것은 IE (http://reference.sitepoint.com/html/form/accept-charset)에 의해이 속성의 "버그가있는"지원의 결과 일 수 있습니다. – user381221

답변

0

MSDN는 IE 만 "UTF-8"이 속성 값으로 수용하는 것을 말한다.

+1

여기서 분명히하자. \ _charset \ _ 양식 필드는 클라이언트 브라우저가 양식을 서버에 제출할 때 채워집니다. 그것은 클라이언트가 지정하는 것이 아닙니다. – EricLaw