2009-05-14 6 views
5

HTML 인코딩에 UTF-8에서 UTF-16으로 변경했을 때의 의미는 무엇입니까? 문제에 대한 당신의 생각을 알고 싶습니다. 그러한 변화를하기 전에 내가 생각할 필요가있는 것들이 있습니까?HTML 인코딩을 UTF-8에서 UTF-16으로 전환 할 때 잘못된 점이 있습니까?

참고 : 다루어야 할 엄청난 양의 일본어 및 중국어 텍스트 때문에 관심이 있습니다.

+1

왜 변경 하시겠습니까? UTF-16은 각 문자마다 16 비트가 필요하지만 UTF-8은 U + 0080에서 16 비트 만 필요합니다. 따라서 모든 ASCII 문자는 ASCII와 같이 인코딩됩니다. – Gumbo

답변

8

내가 잘못 갈 것 몇 가지 생각할 수 있습니다 : 당신은 그것을 UTF-16 HTTP 헤더에있는 내용임을 명시해야

  1. . UTF-8과 달리 UTF-16은 이 아니고 ASCII 호환이므로 처음부터 모든 것이 UTF-16이어야합니다.
  2. 이전 클라이언트는 UTF-16을 지원하지 않습니다. 예를 들어, Windows 9x의 모든 것. 아마도 Mac OS9도 마찬가지입니다.
  3. 오, 잠깐 잊어 버렸습니다. 북미와 유럽의 Windows XP에는 아시아 글꼴이 기본적으로 설치되어 있지 않습니다.
+6

re 3 :이 문제는 문자가 UTF-8 또는 UTF-16으로 인코딩되었는지 여부와 관련이 없습니다. – JacquesB

+0

사실,하지만 내가 문제를 나열하는 한 그것을 던질 것이라고 생각했습니다. – Powerlord

+1

물론이 중 일부는 내가 원래 2009 년에 작성한 것보다 덜 관련이 있습니다 (2017 년 현재). – Powerlord

7
  • 대역폭 소비가 왜 당신을

을 혼동됩니다 잘못 UTF-8 (또는 ASCII)를 가정하는 ASCII 귀하의 HTML의 대부분을 가정 할

  • 클라이언트, 거의 두 배에 가능성이 희망을 (를) UTF-16으로 변경 하시겠습니까?

  • +0

    또는 대역폭이 거의 절반으로 줄어들 수 있습니다. – JacquesB

    +1

    예, 대부분의 HTML이 ASCII가 아닌 경우 물론 HTML 태그와 속성 이름 자체가 ASCII이기 때문에 좋은 "내용 대 마크 업"비율을 포함해야합니다. –

    +0

    OP는 많은 양의 중국어 및 일본어 텍스트를 언급하지만 마크 업에 대해서는 좋은 점이 있습니다. – JacquesB

    -6

    대부분의 브라우저는 내 페이지를 표시하지 않는다고 생각합니다.

    2

    8 비트 데이터 이상에서는 문제가되는 바이트 순서가 있습니다. UTF로 인코딩 된 파일은 해당 파일의 바이트 순서 또는 엔디안을 결정하는 데 사용되는 바이트 순서 표시로 시작합니다.

    Wikipedia has a quite good explanation of this.

    2

    내가 아는 한 모든 최신 브라우저는 UTF-16 인코딩을 지원합니다. 그러나 다른 사람들이 지적했듯이 인코딩을 명시 적으로 선언해야합니다. 모든 브라우저와 플랫폼이 모든 유니 코드 문자를 지원하는 것은 아니지만, 어떤 인코딩을 사용하든 상관 없습니다.

    그러나 대역폭 문제가 큰 문제인 경우 HTML을 gzip으로 처리하는 것이 좋습니다. 이렇게하면 인코딩 전환보다 훨씬 많은 대역폭이 절약됩니다.

    2

    여기 아주 멋진 기사입니다. Fundamentals에서는 "고유 한 문자 인코딩이 필요한 경우 문자 인코딩은 UTF-8, UTF-16 또는 UTF-32이어야하며 US-ASCII는 UTF-8과 상위 호환됩니다 (US-ASCII 문자열은 UTF -8 문자열, [RFC 3629] 참조), US-ASCII와의 호환성이 필요한 경우 UTF-8이 적합합니다. " 실제로 US-ASCII와의 호환성은 매우 유용하므로 거의 필수 사항입니다. W3C는 "API와 같은 다른 상황에서는 UTF-16 또는 UTF-32가 더 적합 할 수 있으며, 내부 프로세서의 효율성 및 다른 프로세스와의 상호 운용성을 포함하는 이유 중 하나를 선택할 수 있습니다."