복붙노트

PHP 기본 인코딩을 utf-8로 설정 하시겠습니까?

PHP

PHP 기본 인코딩을 utf-8로 설정 하시겠습니까?

"PHP 요리 책"에서 그들은 출력 데이터의 char 인코딩을 utf-8로 적절히 설정하기 위해 default_encoding 구성을 utf-8로 편집해야한다고 말합니다 (p.589).

그러나 php.ini에서이 구성을 찾을 수 없습니다. default_encoding = "utf-8"이라고하는 행을 추가해야합니까?

나는; default_charset = "iso-8859-1"을 가지고있다. 보시다시피 (;), 지금은 활성화되지 않았습니다. 세미콜론을 제거하고 "utf-8"로 설정해야합니까? 그것은 기본 인코딩을 처리합니까?

나는 또한 내가 무엇을해야할지 모른다는 다른 인코딩 지시어를 발견했다.

[iconv]
;iconv.input_encoding = ISO-8859-1
;iconv.internal_encoding = ISO-8859-1
;iconv.output_encoding = ISO-8859-1
...
; http://php.net/exif.encode-unicode
;exif.encode_unicode = ISO-8859-15
...
;mssql.charset = "ISO-8859-1"
...
;exif.encode_unicode = ISO-8859-15

왜 내가 utf-8로 그들을 전부 대체해서는 안되는 어떤 이유가 있습니까?

해결법

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

    1.default_charset을 UTF-8로 설정해야합니다.

    default_charset을 UTF-8로 설정해야합니다.

    default_charset = "utf-8"
    

    (PHP 쿡북은 default_encoding을 바꾸라고 요청하면 오타가있을 수 있습니다. 들어 본 적이 없습니다.)

    또한 UTF-8 인코딩 문자를 출력하려는 ​​경우 웹 서버에서 UTF-8을 출력하도록 설정해야합니다. 아파치에서 이것은 httpd.conf 파일에서 설정할 수 있습니다 :

    AddDefaultCharset UTF-8
    

    iconv, exif 및 mssql 인코딩 설정을 수정하는 경우 이러한 설정을하지 않아도됩니다 (설정에 이러한 설정이 포함되어 있음).하지만 모든 설정을 UTF-8로 변경하는 것이 좋습니다.

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

    2.행 수정

    행 수정

    ;default_charset = "iso-8859-1"
    

    읽다

    default_charset = "utf-8"
    

    다른 옵션에 대해서는 터치하지 마십시오. 기본 설정을 사용하지 말고 항상 모든 작업에서 인코딩을 명시 적으로 설정하십시오.

    또한 PHP 파일을 저장하는 인코딩에주의하십시오. 특히 UTF-8이 표시되거나 비교 될 문자열이 포함되어 있으면 인코딩이 UTF-8인지 확인하십시오.

  3. ==============================

    3.내 mysql 쿼리에 문제가있어 일부 latin acentuation을 인식하지 못하므로 쿼리가 실패합니다. 나는 php 파일 일 수 있다고 생각하고, pdo를 사용하여 mysql을 호출 할 때까지 charset을 추가해야한다고 생각했다. 기이 한 일은 내가 사용했던 이전 서버가 잘 작동했다는 것입니다!

    내 mysql 쿼리에 문제가있어 일부 latin acentuation을 인식하지 못하므로 쿼리가 실패합니다. 나는 php 파일 일 수 있다고 생각하고, pdo를 사용하여 mysql을 호출 할 때까지 charset을 추가해야한다고 생각했다. 기이 한 일은 내가 사용했던 이전 서버가 잘 작동했다는 것입니다!

    $dsn = 'mysql:host=localhost;dbname=retirodo_main;charset=utf8';
    - - - - - - - - - - - - - - - - - - - - - - - - - ^^^^^^^^^^^^
    
  4. ==============================

    4.해결하려면 "UTF-8"(대시 없음)으로 변경하여 대신 문제를 해결하십시오.

    해결하려면 "UTF-8"(대시 없음)으로 변경하여 대신 문제를 해결하십시오.

    CentOS

    이자 이사 모라

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

    5.htaccess 레벨 (.htaccess 파일)에서 php 지시어는 php_value default_charset UTF-8이어야합니다.

    htaccess 레벨 (.htaccess 파일)에서 php 지시어는 php_value default_charset UTF-8이어야합니다.

  6. ==============================

    6.* default_charset = "utf-8"*에서 * default_charset = "iso-8859-1"*로 변경하면 (아파치 웹 서버와 리눅스 OS를 사용한다.) utf-8을 사용할 때 어떤 이유 때문에 일부 문자가 잘 렌더링되지 않습니다. 사용 된 웹 브라우저에 따라 사각형 기호 또는 물음표로 변경됩니다.

    * default_charset = "utf-8"*에서 * default_charset = "iso-8859-1"*로 변경하면 (아파치 웹 서버와 리눅스 OS를 사용한다.) utf-8을 사용할 때 어떤 이유 때문에 일부 문자가 잘 렌더링되지 않습니다. 사용 된 웹 브라우저에 따라 사각형 기호 또는 물음표로 변경됩니다.

  7. from https://stackoverflow.com/questions/9351694/setting-php-default-encoding-to-utf-8 by cc-by-sa and MIT license