Programing

PHP를 사용하여 HTTP 헤더를 UTF-8로 설정

lottogame 2020. 3. 13. 08:13
반응형

PHP를 사용하여 HTTP 헤더를 UTF-8로 설정


다음 코드를 사용하여 여러 가지 PHP 페이지를 HTML 페이지 로 에코 합니다.

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

그러나 W3C 유효성 검사기를 사용하여 유효성을 검사하면 다음 과 같은 결과가 나타납니다.

HTTP 헤더 (iso-8859-1)에 지정된 문자 인코딩이 요소의 값 (utf-8)과 다릅니다.

PHP를 처음 접했을 때 PHP 파일의 헤더를 HTML 파일과 일치하도록 변경할 수 있는지 궁금합니다.


headerHTTP 헤더를 수정하는 데 사용하십시오 .

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

출력이 클라이언트로 전송되기 전에이 함수를 호출하십시오. 그렇지 않으면 헤더도 전송되었으며 더 이상 변경할 수 없습니다. 로 확인할 수 있습니다 headers_sent. 자세한 내용은 매뉴얼 페이지header 를 참조하십시오.


먼저 PHP 파일 자체가 UTF-8로 인코딩 되어 있는지 확인하십시오 .

메타 브라우저는 일부 브라우저에서 무시됩니다. ASCII 문자 만 사용하면 아무 문제가 없습니다.

http://en.wikipedia.org/wiki/List_of_HTTP_header_fields

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

이것은 웹 서버가 정의한 것과 일치하지 않는 HTTP 헤더를 보내는 데 문제가 있습니다. 서버가 올바른 헤더를 보내도록하는 방법에 대한 지침은 이 페이지를 참조 하십시오 .

그렇지 않으면 PHP를 사용하여 헤더를 수정할 수도 있지만 이 코드를 사용하여 텍스트를 출력 하기 전에 수행 해야 합니다.

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

PHP를 사용하여 헤더를 보내는 방법에 대한 자세한 내용 은 헤더 함수 설명서를 참조하십시오 .


더 짧은 방법을 사용할 수도 있습니다.

<?php header('Content-Type: charset=utf-8'); ?>

RFC 2616을 참조하십시오 . 문자 세트 만 지정하는 것이 유효합니다.


올바른 구현을 위해서는 일련의 사항을 변경해야합니다.

데이터베이스 (연결 직후) :

mysql_query("SET NAMES utf8");

// Meta tag HTML (probably it's already set): 
meta charset="utf-8"
header php (before any output of the HTML):
header('Content-Type: text/html; charset=utf-8')
table-rows-charset (for each row):
utf8_unicode_ci

내부 인코딩을 사용하도록 설정된 경우 PHP는 자동으로 헤더를 보냅니다.

ini_set('default_charset', 'utf-8');

참고 URL : https://stackoverflow.com/questions/4279282/set-http-header-to-utf-8-using-php

반응형