<?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 => 'ru',
  ),
  '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' => 'ru',
    '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">
        не использующие escape-последовательности ISO2022.
       </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-скрипт написан в рекомендуемой кодировке, он может оказаться
  неработоспособным. Зачастую так происходит, когда кодированные строки
  появляются в скрипте в качестве идентификаторов или литералов. Можно исключить
  большую часть таких ситуаций путём использования функции фильтрации кодировок во
  входящих HTTP-запросах (функция есть в модуле <code class="literal">mbstring</code>).
 </p>
 <blockquote class="note"><p><strong class="note">Замечание</strong>: 
  <p class="para">
   Крайне не рекомендуется использовать SJIS, BIG5, CP936, CP949 и GB18030 в
   качестве внутренних кодировок, если вы недостаточно разбираетесь в устройстве
   парсера, сканера и кодировки.
  </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 необязательно, так как PostgreSQL поддерживает
   автоматическое преобразование кодировок между СУБД и клиентом.
  </p>
 </p></blockquote>
</div>
<?php manual_footer($setup); ?>