A conversão de codificação de caracteres de entrada/saída HTTP pode converter dados binários também. Os usuários devem controlar a conversão de codificação de caracteres se dados binários forem usados para entrada/saída HTTP.
Nota:
Se
enctype
para o formulário HTML estiver configurado comomultipart/form-data
embstring.encoding_translation
estiver ativado no php.ini, as variáveis POST'ed e os nomes dos arquivos enviados serão convertidos para a codificação de caracteres interna também. No entanto, a conversão não é aplicada às chaves de consulta.
Não há maneira de controlar a conversão de caracteres de entrada HTTP a partir de um script PHP. Para desativar a conversão de caracteres de entrada HTTP, isso deve ser feito no php.ini.
Exemplo #1 Desative a conversão de entrada HTTP no php.ini
;; Disable HTTP Input conversion mbstring.http_input = pass ;; Disable HTTP Input conversion mbstring.encoding_translation = Off
Ao usar o PHP como um módulo do Apache, é possível substituir essas configurações em cada diretiva Virtual Host no httpd.conf ou por diretório com .htaccess. Consulte a seção Configuração e o Manual do Apache para obter detalhes.
Existem várias maneiras de habilitar a conversão de codificação de caracteres
de saída. Uma é usando o php.ini, outra
é usando ob_start() com
mb_output_handler() como a
ob_start
função de retorno de chamada.
Exemplo #2 Exemplo de configuração no 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
Exemplo #3 Exemplo de script
<?php
// Habilitar a conversão de codificação de caracteres de saída apenas para esta página
// Definir a codificação de caracteres de saída HTTP para SJIS
mb_http_output('SJIS');
// Iniciar o buffer e especificar "mb_output_handler" como
// função de callback
ob_start('mb_output_handler');
?>