<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/book.mbstring.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'zh',
  ),
  'this' => 
  array (
    0 => 'mbstring.php4.req.php',
    1 => 'PHP字符编码的要求',
    2 => 'PHP字符编码的要求',
  ),
  'up' => 
  array (
    0 => 'book.mbstring.php',
    1 => '多字节字符串',
  ),
  'prev' => 
  array (
    0 => 'mbstring.overload.php',
    1 => '函数重载功能',
  ),
  'next' => 
  array (
    0 => 'ref.mbstring.php',
    1 => '多字节字符串 函数',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'zh',
    'path' => 'reference/mbstring/encoding-requirements.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="mbstring.php4.req" class="chapter">
 <h1 class="title">PHP字符编码的要求</h1>

 <p class="para">
  以下类型的编码能够被 PHP 安全地使用。
  <ul class="itemizedlist">
   <li class="listitem">
    <p class="para">
     单字节编码
     <ul class="itemizedlist">
      <li class="listitem">
       <span class="simpara">
        ASCII兼容（ISO646 兼容），在 <code class="literal">00h</code> 到
        <code class="literal">7fh</code> 的范围内映射字符集。
       </span>
      </li>
     </ul>
    </p>
   </li>
   <li class="listitem">
    <p class="para">
     多字节编码，
     <ul class="itemizedlist">
      <li class="listitem">
       <span class="simpara">
        ASCII兼容，在 <code class="literal">00h</code> 到
        <code class="literal">7fh</code> 的范围内映射字符集。
       </span>
      </li>
      <li class="listitem">
       <span class="simpara">
        不使用 ISO2022 转义序列（escape sequences）。
       </span>
      </li>
      <li class="listitem">
       <span class="simpara">
        单个字符以任意复合字节表达、不使用 <code class="literal">00h</code> 到 <code class="literal">7fh</code> 的值。
       </span>
      </li>
     </ul>  
    </p>
   </li>
  </ul>
 </p>
 <p class="para">
  有几个不太可能用 PHP 运行的字符编码例子。
  <div class="informalexample">
   <div class="example-contents">
<div class="annotation-interactive cdata"><pre>
JIS, SJIS, ISO-2022-JP, BIG-5
</pre></div>
   </div>

  </div>
 </p>
 <p class="para">
  虽然用任何其中一个编码来编写 PHP 脚本可能无法工作，尤其是这些编码的字符串以标识符（identifier）和字符（literal）出现，
  但通过设置 <code class="literal">mbstring</code> 透明地过滤编码的函数，你几乎可以避免传入的 HTTP 查询使用这些编码。
 </p>
 <blockquote class="note"><p><strong class="note">注意</strong>: 
  <p class="para">
   我们极度不赞成在内部编码中使用 SJIS、BIG5、CP936、CP949 和 GB18030，除非你熟悉解析器（parser）、扫描器（scanner）和该字符编码。
  </p>
 </p></blockquote>
 <blockquote class="note"><p><strong class="note">注意</strong>: 
  <p class="para">
   当你用 PHP 连接到一个数据库，为了易用性和性能，推荐在数据库和<code class="literal">内部编码</code>使用一致的字符编码。
  </p>
  <p class="para">
   如果你使用的是 PostgreSQL，数据库里使用的编码和 PHP 里使用的编码可以是不同的，因为它支持字符集在前端和后端之间进行自动转换。
  </p>
 </p></blockquote>
</div>
<?php manual_footer($setup); ?>