복붙노트

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

PHP

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

다음 코드로 HTML 페이지에 여러 가지 PHP 페이지가 반복됩니다.

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

그러나 W3C 유효성 검사기를 사용하여 유효성을 검사하면 다음과 같이 표시됩니다.

나는 PHP에 아주 익숙하며 PHP 파일의 헤더를 HTML 파일과 일치시킬 수 있는지, 그리고 변경해야하는지 궁금합니다.

해결법

  1. ==============================

    1.헤더를 사용하여 HTTP 헤더 수정 :

    헤더를 사용하여 HTTP 헤더 수정 :

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

    출력이 클라이언트에 보내지기 전에이 함수를 호출하는 것에주의하십시오. 그렇지 않으면 헤더도 보내 졌으므로 더 이상 변경할 수 없습니다. headers_sent로 확인할 수 있습니다. 자세한 정보는 헤더의 매뉴얼 페이지를 참조하십시오.

  2. ==============================

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

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

    메타 태그는 일부 브라우저에서 무시됩니다. ASCII 문자 만 사용하는 경우 아무래도 문제가되지 않습니다.

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

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

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

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

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

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

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

  4. ==============================

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

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

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

    charset만을 지정하려면 RFC 2616을 참조하십시오.

  5. ==============================

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

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

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

    mysql_query("SET NAMES utf8");
    //Meta tag HTML.(probably its 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
    
  6. ==============================

    6.내부 인코딩을 설정하면 PHP가 자동으로 헤더를 보냅니다.

    내부 인코딩을 설정하면 PHP가 자동으로 헤더를 보냅니다.

    ini_set('default_charset', 'utf-8');
    
  7. from https://stackoverflow.com/questions/4279282/set-http-header-to-utf-8-using-php by cc-by-sa and MIT license