<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/book.xml.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'zh',
  ),
  'this' => 
  array (
    0 => 'xml.encoding.php',
    1 => '字符编码',
    2 => '字符编码',
  ),
  'up' => 
  array (
    0 => 'book.xml.php',
    1 => 'XML 解析器',
  ),
  'prev' => 
  array (
    0 => 'xml.error-codes.php',
    1 => '错误代码',
  ),
  'next' => 
  array (
    0 => 'xml.examples.php',
    1 => '示例',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'zh',
    'path' => 'reference/xml/encoding.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="xml.encoding" class="article">
 <h1 class="title">字符编码</h1>

 <p class="para">
  PHP 的 XML 扩展通过几种不同的<span class="glossterm">字符编码</span>支持 <a href="http://www.unicode.org/" class="link external">&raquo;&nbsp;Unicode</a> 字符集。有两类字符编码，
  <span class="glossterm">原始编码</span>和<span class="glossterm">目标编码</span>。在
  PHP 的内部，文档始终是使用 <code class="literal">UTF-8</code> 编码。
 </p>
 <p class="para">
  <a href="function.xml-parse.php" class="link">解析</a> XML 文档就完成原始编码。<a href="function.xml-parser-create.php" class="link">创建 XML
  解析器</a>后，可以指定原始编码（在 XML 解析器此后的生命周期里，不能修改）。支持的原始编码有 <code class="literal">ISO-8859-1</code>、<code class="literal">US-ASCII</code>
  和 <code class="literal">UTF-8</code>。前两种是单字节编码, 即每一个字符表现为一个字节。<code class="literal">UTF-8</code> 可将字符编码为一串不定数量（最高
  21）的位（bit）, 编码为 1 到 4 个字节。PHP 使用的默认原始编码是 <code class="literal">ISO-8859-1</code>。
 </p>
 <p class="para">
  当 PHP 将数据传给 XML 处理函数时，目标编码就完成了。在创建 XML
  解析器时，目标编码被设定为与原始编码相同，但可任意修改。目标编码会影响字符数据及标签名，与处理指令目标。
 </p>
 <p class="para">
  如 XML 解析器遇到原始编码所能表示的范围之外的字符时，会返回一个错误。
 </p>
 <p class="para">
  如 PHP 遇到在被解析的 XML 文档中不能用所指定的目标编码表示的字符时，这个问题字符会被“降级”。通常来说，就是那些字符会被替换成问号（?）。
 </p>
</div>
<?php manual_footer($setup); ?>