2008-09-24 13 views

답변

1

일반적으로 웹 호스트의 Apache + PHP 서버는 NO charset 헤더을 보내도록 구성됩니다. 서버가 어떻게 구성되어 있는지 테스트하는 가장 짧은 방법은 다음과 같습니다 당신의 webiste에 페이지 중 하나를 얻어서

  • 사용 this tool to see the server header. 서버 헤더에 charset이 표시되면 서버가이를 사용하고 있음을 나타내며 대개 charset을 포함하지 않습니다.
  • 또 다른 방법은이 간단한 스크립트를 서버에서 실행하는 것입니다. <?php echo ini_get('default_charset'); ?> 위와 같이 일반적으로 빈 문자열을 인쇄하고, 다른 경우 PHP의 charset을 표시합니다.

제 2 회 솔루션은 아파치가 보통이 아니다, 그러나이 경우에 제가 아파치 설정은 INI 지시 deafult_charset PHP를 오버라이드 (override) 할 수 두려워하는 AddDefaultCharset some_charset로 구성되지 랬된다.

0

header('Content-type: xxx/yyy');으로 자신을 설정할 수는 있지만 기본적으로 text/html이 전송됩니다.

+0

설정하지 않으려는 경우 설정하지 않으면 어떤 기본 콘텐츠 유형이 설정 될지 알고 싶습니다. – avernet

0

AFAIK, PHP는 문자열 bytewise를 보냅니다. 즉, 변수에 UTF-8이 있으면 UTF-8을 보냅니다. iso-8859-1을 가지고 있다면, 그것도 보낼 것입니다. 만약 당신이 그들을 섞어 준다면, 그것은 예쁘지 않을 것입니다.

+0

오른쪽 - mb_ * 문자열 변환 함수를 사용하여 "PHP에서 기본적으로 사용하는 인코딩"으로 문자열을 변환합니다. 그러나 변환을 올바르게하려면 PHP에서 사용할 인코딩을 알아야합니다. – avernet

1
아파치를 실행하고 아파치 설정은 디폴트 캐릭터 세트를 사용하지만 경우 참조, 매번 이길 것 (Internet Explorer가 미친 갈 것이다), 윌리엄 제안 헤더() 솔루션을 사용할 수 있습니다

: AddDefaultCharset

1

콘텐츠 유형 및 인코딩은 두 가지 다른 점을 명심하십시오. text/html은 내용 유형입니다. ISO-8859-1 및 UTF-8은 인코딩입니다.

서버는 다음과 같이 일반적으로 보냅니다 보이는 HTTP 응답 헤더 :

Content-Type: text/html; charset=utf-8 

"캐릭터 세트는"실제로 문자 인코딩입니다. 별도의 헤더에 없습니다. 그러나 실제로 어떤 종류의 압축 (예 : gzip)이 사용되는지 지정하는 "Content-Encoding"이라는 헤더가 있습니다.

당신이 HTML이 포함 된 파일에 UTF-8로 문자 인코딩을 변경하려면 :

<? 
header("Content-Type: text/html; charset=utf-8"); 
+0

어쩌면 내 질문에 명확하지 않다 : 나는 인코딩을 설정하고 싶지 않아. 인코딩을 설정하지 않으면 인코딩이 인코딩으로 설정된다는 것을 알고 싶습니다. 기본 인코딩이 무엇인지 알고 싶습니다. – avernet

0
서버가 기본 콘텐츠 또는 문자 집합을하도록 구성되지 않은 경우

, 어느 쪽도 아니는 PHP입니다, PHP는 Content-Type: text/html 만 전송합니다. charset을 전혀 지정하지 않고 스크립트에서 바이트를 보냅니다. 브라우저가 지정된 캐릭터 세트하지 않고 페이지를 수신하면

, 다양한 일이 일어날 수 있습니다

  • 대부분의 브라우저는 "인코딩/캐릭터 세트 '메뉴가 있습니다; 사용자가 명시 적으로 하나를 선택하면 브라우저가이를 적용하려고합니다. 그래서, 너무 자주 발생하지 않습니다 (이 iso-8859-2로 사용 cs_CZ FF 로케일에 의존하는, 예를 들면이다하고, YMMV)를
  • 일부 브라우저는 디폴트의 캐릭터 세트로 렌더링하려고
  • IE를 결정하려고합니다
  • (캐릭터 배포에 기반한 추측이 필요할 것입니다. 그리고 여러 번 올바르게 이해할 때가 있습니다. 때로는 틀리면 루마니아어로 된 페이지는 중국어 텍스트로 해석됩니다. 보통 읽을 수 없음을 의미합니다.)
  • 일부 오래된 브라우저는 다시 돌아갑니다 us-ascii

이 절차로 PHP 스크립트의 charset 및 brows 어휘 세트가 일치하면, 텍스트는 실수로 읽을 수 있습니다. 그렇지 않다면 이상한 징후와 비슷한 현상이 나타날 것입니다.