HTTP 输入和输出

HTTP 输入/输出字符编码转换同样也适用于二进制数据。 如果 HTTP 输入/输出用到了二进制数据,用户应当控制字符的编码转换。

如果 HTML 表单的enctype属性设置为multipart/form-data,并且php.ini里的mbstring.encoding_translation设置为 On, POST 的变量以及上传文件的名称也将会被转换到内部字符编码。 不过,转换不会应用于查询(query)的键。

  • http 输入 在 php 脚本里无法控制 http 输入字符的转换。 要禁用 http 输入字符的转换,必须要在 php.ini 里设置。 example #1 在 php.ini 中禁用 http 输入转换 ;; 禁用 http 输入转换 mbstring.http_input = pass ;;禁用 http 输入转换 mbstring.encoding_translation = off 当 php 以 apache 模块运行。这些设置还可以通过 httpd.conf 内每个虚拟主机(virtual host)指令或每个目录下的 .htaccess 来覆盖(override)。 详情参见配置这一节,以及 apache 手册。
  • http 输出 输出字符编码转换的使用有几种方式。 一种是使用 php.ini,另一种是使用 ob_start(),以 mb_output_handler()作为 ob_start 的回调函数。

Example #2php.ini设置例子

;; 为所有 PHP 页面启用输出字符编码的转换

;; 启用输出缓冲
output_buffering    = On

;; 设置 mb_output_handler 来进行输出的转换
output_handler      = mb_output_handler

Example #3 脚本例子

<?php

// 仅为此页面启用输出字符编码的转换

// 设置 HTTP 输出字符编码为 SJIS
mb_http_output('SJIS');

// 开始缓冲并指定 "mb_output_handler" 为回调函数
ob_start('mb_output_handler');

?>

淘宝 adsense 商品推荐

正版 Google AdSense实战宝典:用谷歌广告联盟出海赚美元 第2版 seo搜索引擎优化 广告营销 网站运营书籍 AdSense从入门到精通

价格:39.5元