2012-04-27 3 views
3

내 페이지가 UTF-8로 인코딩되었다고 가정하고 코드가 a.php이고 a.php이 ajax (jQuery) $.get을 통해 반입되며 헤더에 windows-1255과 같은 인코딩이 지정되어 있습니다. 무엇이 일어나고 있습니까? 감사합니다.AJAX가 다른 인코딩 페이지를 호출하면 실제로 어떻게됩니까?

+0

좋은 질문입니다. 내 경험은 브라우저가 내부 사용을 위해 유니 코드로 문자를 원활하게 변환한다는 것입니다. (그래서 모든 문서는 선언 된 인코딩에 의해 암시되는 문자 집합과 관계없이 모든 유니 코드 문자 집합을 사용할 수 있습니다.) 그러나 나는이 질문에 대답하려고합니다. 상세히. 모든 문자가 Unicode 문자 집합으로 매핑 될 수 있다고 가정합니다. – goat

+0

또한 다른 페이지의 선언 된 인코딩이 올바른지 질문을 편집하십시오. – goat

답변

1

글쎄, 모든 것은 웹 브라우저가 해석하고 사용자에게 표시 할 문자로 변환 할 때까지 모든 바이트입니다. 어쨌든 인코딩 충돌이 존재하기 때문에 AJAX에서 어떤 일이 발생하는지는 중요하지 않습니다.

예를 들어, AJAX에서 UTF-8로 인코딩 된 스칸디나비아 문자 'å'을 반환하면 2 바이트 0xc3a5로 인코딩됩니다. 이제 웹 브라우저에서 인코딩이 UTF-8이 될 것으로 예상하면 사용자에게 'å'로 렌더링됩니다. 문제는 없습니다. 그러나 웹 브라우저가 Latin1을 예상하면 기본적으로 두 문자, 즉 0xc3 및 0xa5로 해석되어 문자 Ã ¥를 나타냅니다.

+0

ajax에서 가져온 데이터가 표시되는 방식을 변경하는 방법이 있습니까? – Jackson

+0

가장 좋은 해결책은 항상 동일한 인코딩으로 작업하는 것이지만, 항상 그렇다고 볼 수있는 것은 아닙니다.이 경우 양쪽 끝의 인코딩을 확인한 다음 다른 쪽으로 변환해야합니다. 아마도 내 지식이 멈추는 도서관이있을 것입니다. – LostOblivion

관련 문제