2012-11-19 8 views
2

페이지가 가비지로 산발적으로 렌더링되는 문제가 발생했습니다. 문제를 조사하는 과정에서 원래 개발자가 charset 또는 doctype을 지정하지 않은 것으로 나타났습니다.HTML에서 문자 집합을 지정하지 못하면 페이지에서 주기적으로 가비지를 렌더링 할 수 있습니까?

사이트의 대부분이 doctype없이 개발되었고 IE의 호환성 모드에서 기본적으로 렌더링되기 때문에 Doctype을 추가하는 것은 현재 불가능합니다. 그러나 나는 사이트가 우리가 가지고있는 문제를 해결할 수 있기를 희망하는 문자셋 ISO-8859-1을 사용해야한다고 지정했습니다.

charset을 지정하지 않으면 이러한 문제가 발생하며, 그렇다면 왜 그런가?

+1

나는이 질문이 건설적이지 않은 한계에 있다고 주장 할 것이다. 거기에가는 선을 걷고 있습니다. –

+0

그것은 나에게 매우 교묘해질 것입니다. 차라리 공동체를 조사하여 필자가 겪고있는 문제가 필자의 사이트에 영향을 미치지 않았다는 사실을 알기 위해 내 회사의 설치 프로세스를 거치지 않고 문자 세트를 지정하지 않아서 발생할 수있는 것인지를 알아 냈습니다. 그래도 질문이있는 경우 쿼리를 더 예민하게 할 수있는 방법에 대한 제안은 아직 열려 있습니다. – elucid8

+1

@ elucid8 - 내 견해는 질문에 대한 동기를 이해하는 동안 지나치게 광범위하다는 것입니다. 합리적으로 철저한 설명을하기 위해서는 많은 부분을 다루어야하며 그 중 많은 부분이 당신에게 무관합니다. 보는 증상을 설명하는 것이 훨씬 더 좋을 것이고 공동체는 문자셋과 관련이 있는지 없는지를 쉽게 알 수 있습니다. – Alohci

답변

2

문자 인코딩 (문자 세트)을 지정하지 않으면 브라우저와 검색 엔진을 추측해야합니다. 영향은 크게 다릅니다.

예를 들어 내용이 Ascii 문자 만인 경우 잘못된 동작의 확률은 매우 낮습니다. 그러나 그때조차도 문제가 나타날 수 있습니다. 인코딩을 선언하지 않은 페이지를 방문하고 수동으로 다른 인코딩을 시도하고 UTF-16 (가능하지는 않지만 가능함)을 선택해야만한다고 가정합니다. 그런 다음 Ascii 인코딩과 함께 다른 페이지를 방문하면 해당 인코딩이 선언되지 않고 UTF-16을 사용하여 표시됩니다. 즉, 대부분 중국어로 표시됩니다.

훨씬 더 일반적인 문제는 문서에 Ascii가 아닌 문자가 포함되어 있고 브라우저가 잘못 추측하면 몇 가지 문자 대신 다양한 것이 나타날 수 있다는 것입니다. 작은 직사각형; 내부에 16 진수가있는 작은 직사각형; ¤ 같은 문자의 이상한 조합; 상징물 ; 다른 서체 시스템의 문자 (예 : 라틴 문자를 볼 것으로 예상되는 그리스어 또는 키릴 문자 등)

문자 인코딩은 doctype 선언 및 단점 모드 (호환성)와 아무런 관련이 없습니다. 스타일, 상자의 크기, 상자의 배치 등과 관련된 것들

선언 할 내용은 페이지에서 사용되는 실제 인코딩입니다. 제작 도구와 페이지 자체를 연구하여 ISO-8859-1이 가능할 수도 있지만 저작 소프트웨어에서 생성 된 기본값으로 UTF-8을 사용하는 것이 점점 더 보편화되고 있습니다. Ascii 문자 만 포함 된 페이지에서는 차이점을 볼 수 없습니다.

인코딩이 ISO-8859-1인지 확인하면 windows-1252를 선언하는 것이 좋습니다. 그 이유는 사람들이 실제로 windows-1252로 인코딩 된 페이지를 생성 할 수 있기 때문입니다. 어딘가에서 텍스트를 복사 할 때. 인코딩의 차이점은 ISO-8859-1에서 제어 문자 용으로 예약 된 일부 코드 위치에서 windows-1252가 인쇄 가능한 문자 (스마트 구두점과 같이)를 갖고 HTML에서 해당 문자 (C1 컨트롤)가 허용되지 않는다는 것입니다.

+0

전체 페이지가 때때로 뒤죽박죽으로 렌더링 될 수 있습니까? – elucid8

+0

@ elucid8, 엉망으로 엉망진창이 가능합니다. 비 Ascii 문자가 많은 UTF-8로 인코딩 된 페이지가 ISO-8859-1로 해석되거나 그 반대의 경우도 마찬가지입니다. –

+0

시간 내 주셔서 감사합니다. 나는 이것을 생산에 적용 할 것이다. 내가 무슨 일이 일어날 지 알려줄거야 :) – elucid8