2009-06-24 3 views
2

XML 파일에서 데이터를 읽는 PHP 스크립트가 있는데 AJAX를 통해 해당 텍스트 영역에 데이터를 배치하는 페이지로 리턴합니다.영국 파운드 스털링 사인 (£)이 올바르게 나타나는지 어떻게 확인합니까?

은 다음 페이지의 콘텐츠 형식이 될 때 :

<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" /> 

는 XML 제목은 다음과 같습니다 : 데이터가 텍스트 상자에 도착했을 때

<?xml version="1.0" encoding="UTF-8"?> 
    <!DOCTYPE xsl:stylesheet [ 
    <!ENTITY pound "&#163;"> 
]> 
... 

그것은이 문제가된다 그 전에 문자.

콘텐츠 형식을 UTF-8로 설정하면이 문제가 해결되지만 잘못된 것입니다. 누구나 인코딩 유형을 일관되게 렌더링하기 위해 사용해야한다고 말할 수 있습니까?

답변

6

문자 인코딩의 문제는 어떤 단계에서 어떤 프로그램이나 프로세스가 올바르게 처리되지 못하고 문자가 섞이게 될 경우입니다.

그래서, 당신은

  1. 인 XML 응답 froman XML 파일을 빌드 서버에서 일부 코드를 실행하는 AJAX 호출을
  2. 있어하는 HTML 페이지
  3. 은 브라우저로 반환되어 텍스트 상자에 표시됩니다.

이상적으로 모든 단계에서 UTF-8 인코딩이 필요합니다. 캐릭터가 질식하는 과정에서 어떤 단계에있을 가능성이 큽니다. 여기에 내가 당신의 HTML/PHP 페이지가 HTML/PHP 텍스트 파일로 저장됩니다

  • 이 있는지 확인하십시오 올바른 메타 태그를 가지고 있는지 확인

    1. 을이를 추적하기 위해 수행하려는 단계이다 UTF-8
    2. 에서 읽은 당신의 XML 파일로 저장되어 있는지 확인 UTF-8
    3. 확인이 읽고 당신은 모두가 자신의 인코딩이 prolouge <? XML 버전에서 설정 한 구축 응답있어 XML 파일 = " 1.0 " 인코딩 = " utf-8 "? >
    4. 서버의 응답 헤더는 기호 당신이 있는지 확인해야 제대로
  • 3

    을 반환되고 있는지 확인하기 위해 브라우저에서 수동으로 서비스를 호출 UTF-8

  • 을 발송되어 있는지 확인하여 AJAX 요청은 UTF-8을 반환합니다. 정적 페이지의 Content-Type 설정은 괜찮지 만 Ajax 호출을 할 때 발생하는 HTTP 전송의 Content-Type 인코딩에는 영향을 미치지 않습니다.

    (다른 출력보다 먼저) Ajax 결과를 반환하는 스크립트에서이 코드를 사용해보십시오. 이렇게하면 HTTP 응답의 Content-Type이 설정됩니다.

    header('Content-Type: text/html; charset=utf-8'); 
    
  • +0

    건배는 확실하지 않지만 내 PHP는 생각합니다.ini는 기본적으로 UTF-8로 페이지를 제공하도록 설정되어 있습니다. :) – xenon