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 파일과 일치하도록 변경할 수 있는지 궁금합니다.
header
HTTP 헤더를 수정하는 데 사용하십시오 .
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
'Programing' 카테고리의 다른 글
동적 키로 객체 생성 (0) | 2020.03.13 |
---|---|
백그라운드에서 Android 애플리케이션이 실행 중인지 확인 (0) | 2020.03.13 |
Android에서 이미지 뷰의 투명한 배경 설정 (0) | 2020.03.13 |
R에서 목록을 올바르게 사용하는 방법? (0) | 2020.03.13 |
C ++ 11 역 범위 기반 for 루프 (0) | 2020.03.13 |