2011-01-22 7 views
0

문자열 "don"이 포함 된 웹 사이트를 발견했습니다. 분명한 의도는 "하지 마라"였습니다. 나는 어떤 문자 참조를 보길 기대하고있는 출처를 보았지만 그렇지 않았다. (단지 문자 그대로의 문자열 "donâ € ™ t"을 보여준다.) 구글 검색은 아무런 결과도 가져 오지 않았다. 아무도 여기에 무슨 일이 일어나고 있는지 설명웹 사이트의 외국 문자

편집 : 여기에 사용 된 메타 태그입니다 :?

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 

이 페이지는 HTTP 헤더에 라틴 1로 역임되게하지 않을까요

답변

5

브라우저에서 페이지 인코딩을 "UTF-8"로 전환하십시오. right single quote character이 표시되며 UTF-8로 옥텟 0xE2 0x80 0x99으로 인코딩됩니다. 당신의 charset, windows-1252에서, 그 3 옥텟은 "â €"로 렌더링됩니다. 페이지는 HTTP 헤더 또는 HTML <meta> 태그에서 UTF-8을 문자 집합으로 명시 적으로 지정해야하지만 실제로 그렇지 않습니다.

+0

즉, 두 가지 가능한 원인이 있습니다. 1) 출력이 UTF-8 문자로 동적으로 가져 왔지만 HTTP 응답 헤더의 charset은 해당 문자를 CP-1252를 사용하여 표시해야 함을 나타냅니다. 2) 소스 코드 파일 자체가 UTF-8 문자로 채워졌지만 파일이 편집기에서 CP-1252로 저장되어 그 역할을 수행했습니다. 편집 : 당신의 편집에 따라, ''태그는 적합하지 않습니다. 그것은'Content-Type' 응답 헤더입니다. – BalusC

+1

세 번째 옵션은 임의의 문자 집합을 지정하지 않고 브라우저가 플랫폼 문자 세트를 잘못 기본값으로 지정하는 것입니다. 나는 저것에 내기를 걸 것이다. – dkarp

+0

그것은 MSIE 였을 것입니다 :) 어쨌든 진짜 브라우저가 아닙니다. – BalusC

1

Character encondings in HTML에 따르면 위키 피 디아에있는 보조자 :

HTML (하이퍼 텍스트 마크 업 언어) 는 1991 년부터 사용되었지만, HTML 4.0 (1997 12월) 국제 문자가 합리적으로 완전한 치료를 주어진 첫번째 표준화 된 버전이었다. HTML 문서 일곱 비트 ASCII의 범위를 벗어나는 특별한 문자를 포함하면 두 가지 목표는 고려 가치 같습니다 정보의 무결성, 보편적 인 브라우저 표시됩니다.

내가 확인한 사이트는이 점을 염두에 두지 않았습니다.

1

이것은 모두 인코딩과 관련이 있습니다. 소스를 다시 살펴보고, 맨 위에 태그 (charset)가 지정되어 있습니까? 내 생각에 UTF8이 될 것입니다 - 완전히 다른 무언가 일 수 있지만.

+0

네, 맞습니다. 위의 내 의견을 참조하십시오. – Bill

1

This thread explains all. UTF 문자가있는 페이지에도 불구하고 인코딩을 UTF-8이 아닌 것으로보고하는 서버에서 이상한 UTF-8 아포스트로피 문자 (아마도 Word 문서에서 비롯됨)를 사용하는 조합 (그리고 자체 인코딩을 올바르게보고 할 수도 있습니다.).

+1

웹 개발 101 : UTF-8 인코딩을 사용하려고 할 때 페이지 인코딩을 UTF-8로 설정하십시오! – Bill