2018년 3월 4일 일요일

[PHP예제] 003 문자 인코딩을 통일하고 싶을 때

문자 인코딩은 'UTF-8'에서 통일하는 것을 추천한다. 메일 전송이나 핸드폰 사이트 등과 같이 UTF-8로 통일할 수 없는 부분만 문자 인코딩으로 자동 변환하거나 PHP 스크립트에서 mb_convert_encoding() 함수를 이용해 문자 인코딩으로 변환할 수 있다.

UTF-8로 PHP 문자 인코딩 설정하기

php.ini에서 다음 표와 같이 설정한다.
이 때 반드시 mbsring.language는 mbstring.internal_encoding의 앞에 설정해야 함.

설정 내용 설명
default_charset = UTF-8 HTTP 헤더로 출력하는 기본 문자 인코딩을 UTF-8로 설정
mbstring.language = Korean 사용하는 언어를 한국어로 설정
mbstring.internal_encoding = UTF-8 mbstring 함수의 기본 문자 인코딩을 UTF-8로 설정함
mbstring.http_input = pass HTTP 입력 문자 인코딩을 pass(지정 없음)로 설정
mbstring.http_output = pass HTTP 출력 문자 인코딩을 pass(변환 없음)로 설정
mbstring.encoding_transiation = Off HTTP 입력 문자 인코딩의 자동 변환을 Off로 설정

php.ini가 아니라 .htaccess에 의한 디렉터리 단위로 설정할 수 있다. 이렇게 설정한 값은 phpinfo() 함수에서 확인한다.


  • 지역(local) 설정하기
    • mbstring의 설정과는 별도로 PHP에는 지역에 의존하는 함수가 있어서 UNIX계 OS에서는 UTF-8로 설정한다.
  • mbstring에서 사용하는 문자 인코딩명
    • mbstring에서 지원하는 인코딩명의 목록은 mb_list_encodings() 함수에서 알아볼 수 있
    • var_dump(mb_list_encodings());




댓글 없음:

댓글 쓰기