항상 UTF-8 문자 인코딩을 사용 해야 합니다. (즉, u t f-8로 콘텐츠를 저장 해야 한다는 것을 기억 하십시오.) U t f-8을 실제로 사용할 수 없는 경우 고려해 야 할 사항을 참조 하세요. 이 기법을 사용 하면 각 응답에 대 한 인코딩이 하나 있으므로 인코딩이 전체 페이지에 적용 됩니다. OWASP Java 인코더 라이브러리는 성능 또는 사용 중에 오버 헤드가 거의 없는 빠른 상황별 인코딩을 위한 것입니다. 시작 하려면 encoder-1.2.2를 추가 하기만 하면 됩니다. 인코딩 및 인코딩을 시작 합니다. 이 특성을 사용 하는 데 문제가 항상 있었습니다. 첫째로, 그것은 잘 주요 브라우저에 의해 지원 되지 않습니다. 이 특성을 지원 하지 않는 이유 중 하나는 브라우저가 특별 한 추가 규칙 없이 그렇게 할 경우 XSS 공격 벡터가 된다는 것입니다. 둘째, 주어진 시간에 정보가 올바른지 확인 하는 것은 어렵습니다. 문서 작성자가 알지 못해도 문서의 인코딩이 잘 변경 될 수 있습니다. 작성자가 여전히 문서 인코딩을 지정 하지 않은 경우에는 브라우저가 잘못 된 인코딩을 적용 하도록 요청 하 게 됩니다.

그리고 셋째, 사람들이이 기사의 지침을 따르고 문서를 제대로 표시 하는 경우 어쨌든 필요 하지 않아야 합니다. 그것은 훨씬 더 나은 방법입니다. … 는 입력이 고, “innerHTML”은 인코딩이 없는 것과 동일한 XSS 벡터를 반환 합니다. 수 개 국어 문서는 u t f-8에 있어야 하므로 XML 선언을 사용할 필요가 없으며 실제로는 사용 하지 말아야 합니다. 반면에 파일을 HTML로 읽으려면 메타 요소, 바이트 순서 표시 또는 HTTP 헤더를 사용 하 여 인코딩을 선언 해야 합니다. 또한 페이지가 u t f-16으로 인코딩된 경우에는 파일을 ` u t f-16BE ` 또는 ` u t f-16BE `로 선언 하지 말고 ` u t f-16 `만 사용 합니다. 파일의 시작 부분에 있는 바이트 순서 표시는 인코딩 체계가 리틀 엔디안 인지 아니면 빅 엔디안 여부를 나타냅니다. (이는 명시적으로 인코딩된 콘텐츠 (예를 들어, u t f-16BE는 바이트 순서 표시를 사용 하지 않아야 하기 때문입니다. 그러나 HTML5는 UTF-16 인코딩 페이지에 바이트 순서 표시가 필요 합니다.) (어떤 사람들은 문서의 내용에서 반복 하려는 경우 HTTP 헤더에 인코딩을 선언 하는 것이 적절 하지 않다는 것을 주장 합니다. 이 경우 HTTP 헤더가 문서 인코딩에 대해 아무 것도 없다고 제안 합니다. 이는 일반적으로 서버 기본값을 사용 하지 않도록 설정 하는 조치를 취하는 것을 의미 합니다.

마찬가지로, 문자 인코딩이 HTTP 헤더에만 선언 된 경우에는 편집 중에 파일에 대해이 정보를 더 이상 사용할 수 없으며, XSLT 나 스크립트 등으로 처리 하거나 번역을 위해 전송 되는 경우에도이 정보가 더 이상 제공 되지 않습니다. 문서의 인코딩을 나타내는이 방법은 우선 순위가 가장 낮습니다 (즉, 인코딩이 다른 방식으로 선언 된 경우에는 무시 됩니다). 즉, 잘못 된 선언을 수정 하려면이를 사용할 수 없습니다. 항상 charset 특성을 가진 메타 요소를 사용 하거나 http 등 및 콘텐츠 특성 (pragma 지시문 이라고 함)을 사용 하 여 문서의 인코딩을 선언 합니다. 선언은 파일 시작 시 처음 1024 바이트 내에 완전히 맞아야 하므로 여는 head 태그 바로 뒤에 배치 하는 것이 가장 좋습니다. XHTML 1. x는 XML로 제공: 페이지의 첫 번째 줄에 XML 선언의 인코딩 선언을 사용 합니다. 공백 (바이트 순서 표시는 괜찮습니다)을 포함 하 여 앞에 아무 것도 없는지 확인 합니다. 파일 시작 부분에 UTF-8 바이트 순서 표시 (BOM)가 있는 경우 인터넷 익스플로러 10 또는 11 이외의 최근 브라우저 버전에서는이를 사용 하 여 페이지 인코딩이 u t f-8 인지 확인 합니다.

HTTP 헤더를 포함 하 여 다른 모든 선언 보다 우선 순위가 높습니다. 국제화 검사기를 사용 하 여 HTTP 헤더가 보낸 모든 인코딩을 감지할 수 있습니다. 어떤 이유로 든 선택이 없는 경우 인코딩을 선언 하기 위한 몇 가지 규칙은 다음과 같습니다. 다른 인코딩에 대 한 것과 다릅니다. 몇 십억 페이지의 구글 샘플의 결과에 따르면, 웹에 페이지의 0.01% 미만 u t f-16로 인코딩됩니다. U t f-8은 모든 웹 페이지의 하위 집합, ASCII 및 60% 이상을 포함 하는 경우 80% 이상 차지 합니다.