페이지 탐색에서 액세스 키를 n번 건너뜁니다. 컨텐츠 시작 페이지로 건너뛰기

이 문서는 번역본입니다. 일치하지 않는 사항이나 오류가 있는 경우에는 최신 영문 원본 을 참고하십시오. 원본 저작권 은 아래와 같이 W3C에게 있습니다.

번역: Korean translation services, wintranslation

s_gotoW3cHome 국제화
 

다국어 양식 인코딩

대상자: XHTML/HTML 코딩 작업자(편집기 또는 스크립팅 사용), 스크립트 개발자(PHP, JSP 등), 웹 프로젝트 매니저, 그리고 양식에 사용되는 문자 인코딩 취급 방법에 관한 정보를 찾는 사람.

질문

여러 언어와 스크립트가 사용될 수 있는 양식의 인코딩 문제를 다루는 가장 좋은 방법은 무엇일까요?

답변

(X)HTML 양식의 인코딩 문제를 다루는 최상의 방법은 모든 페이지를 UTF-8 형식으로 제공하는 것입니다. UTF-8은 가장 폭넓은 언어의 문자를 표현할 수 있습니다. 브라우저는 양식을 포함하는 페이지와 동일한 인코딩으로 양식 데이터를 전송하기 때문에 사용자는 필요한 언어와 스크립트가 무엇인지에 관계 없이 데이터를 입력할 수 있습니다.

이 방법을 적용하려면 몇 가지 세부적인 주의가 필요합니다. 첫째, 양식 페이지가 UTF-8 형식으로 되어 있다는 사실을 브라우저가 인식할 수 있게 해야 합니다. 페이지의 인코딩 방식을 브라우저에 알리는 방법은 여러 가지가 있습니다. 이렇게 브러우저가 인코딩 방식을 인식하는 것은 어떤 경우에도 중요하지만, 양식 페이지 자체가 US-ASCII 이외 문자를 포함하지 않지만 사용자가 다른 문자를 입력할 수도 있는 경우에는 특히 더 중요합니다.

둘째, 양식 데이터를 수신하는 스크립트가 실제 반환된 데이터가 UTF-8을 사용하는지 확인하는 것이 바람직합니다(잘못된 경우 사용자가 인코딩 변경). UTF-8은 다른 인코딩에는 나타나지 않는 매우 특별한 바이트 패턴을 갖기 때문에 이러한 확인이 가능합니다. 비UTF-8 데이터가 수신되면 오류 메시지를 전송해야 합니다.

한 예로, Perl에서 UTF-8에 대한 정규 표현식 테스트는 다음과 유사할 수 있습니다.

$field =~
  m/\A(
     [\x09\x0A\x0D\x20-\x7E]            # ASCII
   | [\xC2-\xDF][\x80-\xBF]             # non-overlong 2-byte
   |  \xE0[\xA0-\xBF][\x80-\xBF]        # excluding overlongs
   | [\xE1-\xEC\xEE\xEF][\x80-\xBF]{2}  # straight 3-byte
   |  \xED[\x80-\x9F][\x80-\xBF]        # excluding surrogates
   |  \xF0[\x90-\xBF][\x80-\xBF]{2}     # planes 1-3
   | [\xF1-\xF3][\x80-\xBF]{3}          # planes 4-15
   |  \xF4[\x80-\x8F][\x80-\xBF]{2}     # plane 16
  )*\z/x;

이 표현식을 다른 프로그래밍 언어에 채택할 수 있습니다. 이 표현식은 너무 긴 인코딩이나 대리자의 잘못된 사용 같은 다양한 문제를 처리합니다. $field가 UTF-8이면 true를 반환하고, 그렇지 않으면 false를 반환합니다.

의견을 알려 주십시오(영어로).

RSS feed에 가입합니다.

새 리소스

홈 페이지 뉴스

Twitter (홈 페이지 뉴스)

‎@webi18n

추가 정보

작성한 사람: Martin Dürst, W3C. 번역: Korean translation services, wintranslation.

Valid XHTML 1.0!
유효한 CSS!
UTF-8로 인코딩됨!

2007-10-26 기준 영어 컨텐츠를 번역한 것입니다. 2011-12-09 11:10 GMT에 번역본이 마지막으로 변경되었습니다.

문서 변경 내역을 확인하려면 i18n 블로그에서 qa-forms-utf-8 을 검색하십시오.