Multibyte String HTTP 입력 및 출력

HTTP 입출력 문자 인코딩 변환은 바이너리 데이터도 변환할 수 있습니다. HTTP 입/출력에 바이너리 데이터를 사용하는 경우 사용자는 문자 인코딩 변환을 제어해야 합니다.

메모: HTML 양식에 대한 enctype이 multipart/form-data로 설정되고 mbstring.encoding_translation이 php.ini에서 On으로 설정되면 POST된 변수와 업로드된 파일의 이름도 내부 문자 인코딩으로 변환됩니다. 그러나 변환은 쿼리 키에 적용되지 않습니다.

  • HTTP Input

    PHP 스크립트에서 HTTP 입력 문자 변환을 제어하는 ​​방법은 없습니다. HTTP 입력 문자 변환을 비활성화하려면 php.ini에서 수행해야 합니다.

    예제 #1 php.ini에서 HTTP 입력 변환 비활성화

    ;; Disable HTTP Input conversion
    mbstring.http_input = pass
    ;; Disable HTTP Input conversion
    mbstring.encoding_translation = Off
                         

    PHP를 Apache 모듈로 사용할 때 httpd.conf의 각 가상 호스트 지시문 또는 .htaccess를 사용하여 디렉토리별로 해당 설정을 재정의할 수 있습니다. 자세한 내용은 Configuration 섹션 및 Apache 설명서를 참조하십시오.

  • HTTP Output

    출력 문자 인코딩 변환을 활성화하는 방법에는 여러 가지가 있습니다. 하나는 php.ini를 사용하고 다른 하나는 ob_start 콜백 함수로 mb_output_handler()와 함께 ob_start를 사용합니다.

예제 #2 php.ini 설정 예

;; Enable output character encoding conversion for all PHP pages

;; Enable Output Buffering
output_buffering    = On

;; Set mb_output_handler to enable output conversion
output_handler      = mb_output_handler
                  

예제 #3 Script 예

                    
<?php

// Enable output character encoding conversion only for this page

// Set HTTP output character encoding to SJIS
mb_http_output('SJIS');

// Start buffering and specify "mb_output_handler" as
// callback function
ob_start('mb_output_handler');

?>