Lion을 실행하는 동일한 MacBook에서 Safari가 아닌 Chrome을 사용할 때 💩와 같은 이모티콘이 나타나는 이유는 무엇입니까? 두 브라우저 모두 WebKit을 사용하며 글꼴 지원은 응용 프로그램이 아닌 OS에서 제공된다고 생각합니다.
참조 목적으로이 페이지는 Chrome 17.0.963.56에서 렌더링 된 페이지입니다.
그리고 이것은 Safari 5.1.3 (7534.53.10)에서 렌더링 된 페이지입니다 :
Lion을 실행하는 동일한 MacBook에서 Safari가 아닌 Chrome을 사용할 때 💩와 같은 이모티콘이 나타나는 이유는 무엇입니까? 두 브라우저 모두 WebKit을 사용하며 글꼴 지원은 응용 프로그램이 아닌 OS에서 제공된다고 생각합니다.
참조 목적으로이 페이지는 Chrome 17.0.963.56에서 렌더링 된 페이지입니다.
그리고 이것은 Safari 5.1.3 (7534.53.10)에서 렌더링 된 페이지입니다 :
답변:
차이점은 브라우저 창의 렌더링 엔진입니다.
우리는 Safari가 문자 집합을 Chrome과 다르게 렌더링한다는 것을 알고 있습니다. 그러나 Window UI 요소 (Chrome의 탭)는 괜찮습니다. 이것이 우리의 가장 큰 단서입니다.
창 UI 요소는 모두 OS에 의해 렌더링 될 가능성이 있습니다 (강조 될 수 있습니다. 그래서 그들은 전체 OS 수준의 이모티콘 확장 처리를 얻습니다.
그러나 웹 브라우저 창에서 일어나는 일은 모두 브라우저에 따라 다릅니다. 렌더링 엔진은 각 브라우저의 비밀 소스의 큰 부분입니다.
Safari와 Chrome은 모두 WebKit을 사용하지만 사용하는 WebKit 인스턴스 간의 유사성은 엔진 이름 어딘가에서 멈 춥니 다. 둘 다 기본 버전의 포크이며 각 브라우저 개발 팀이 최종 사용자에게 의미가 있다고 생각하는 방식으로 성능을 향상시키기 위해 크게 맞춤화되었습니다.
@JasonSalaz는 Chrome 버그 데이터베이스에서 WebKit 포크에 대한 최종 단서를 제공하는 훌륭한 버그를 발견했습니다. http://code.google.com/p/chromium/issues/detail?id=90177- 버그는 오픈 소스 프로젝트에서 Chrome의 포크와 WebKit의 메인 라인의 차이점에 대해 이야기합니다. Chrome에서 사용중인 버전으로 아직 렌더링하지 않은 메인 라인에는 렌더링 차이가 있습니다. 그리고 어떤 시점에서 변경 사항을 병합하려는 것처럼 보입니다.
업데이트 : Paul Irish는 현재 WebKit이 현재 사용하는 모든 브라우저에서 어떻게 다른지에 대한 훌륭한 블로그 게시물을 가지고 있습니다. WebKit 환경이 얼마나 다양한 지 정말로 이해하고 싶다면, 이것은 대단한 읽기입니다.
문제는 브라우저가보고있는 문서와 다른 문자 인코딩을 사용하고 있다는 것입니다.
브라우저는 어떤 문자 인코딩을 사용해야하는지 어떻게 알 수 있습니까?
Content-Type
헤더를 사용하여 HTTP로 지정할 수 있습니다 .meta
요소를 사용하여 HTML 문서에 지정할 수 있습니다 .charset
속성을 사용하여 특정 HTML 요소에 대해 지정할 수 있습니다 .이들 중 어느 것도 지정되지 않으면 다른 브라우저는 다른 기술을 사용하여 올바른 문자 인코딩을 추측합니다. 일부는 휴리스틱을 사용합니다. 일부는 사용자가 문자 인코딩을 지정할 수 있도록합니다. 일부는 운영 체제의 기본 문자 인코딩을 선택합니다.
이 중 어느 것도 나오지 않으면 mojibake라고도하는 횡설수설을 얻습니다.
질문에 직접 대답하기 위해 Safari와 Chrome은 올바른 문자 인코딩을 찾기 위해 다른 일을 시도하고 있습니다.
https://code.google.com/p/chromium/issues/detail?id=62435 는 최근에 수정 된 것으로 표시되었습니다. 버전 41부터 이모티콘이 Chrome에 제대로 표시되어야합니다.
이 상징은 Apple이 만든 캐릭터입니다. Safari는 자체 문자 세트를 사용합니다.