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');
?>