mirror of
https://github.com/php/doc-ja.git
synced 2026-03-24 07:02:08 +01:00
Closes #310 Co-authored-by: KentarouTakeda <4785040+KentarouTakeda@users.noreply.github.com>
109 lines
3.7 KiB
XML
109 lines
3.7 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<!-- $Revision$ -->
|
|
<!-- EN-Revision: 96c9d88bad9a7d7d44bfb7f26c226df7ee9ddf26 Maintainer: takagi Status: ready -->
|
|
<!-- CREDITS: hirokawa -->
|
|
|
|
<chapter xml:id="mbstring.php4.req" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
|
|
<title>PHP の文字エンコーディングに関する要件</title>
|
|
<para>
|
|
以下の型のエンコーディングが、PHP で安全に使用することができます。
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>
|
|
シングルバイトエンコーディングで、
|
|
<itemizedlist>
|
|
<listitem>
|
|
<simpara>
|
|
<literal>00h</literal> から <literal>7fh</literal> の範囲の文字に関して、
|
|
ASCII 互換 (ISO646 互換) のマッピングを有する。
|
|
</simpara>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
マルチバイトエンコーディングで、
|
|
<itemizedlist>
|
|
<listitem>
|
|
<simpara>
|
|
<literal>00h</literal> から <literal>7fh</literal> の範囲の文字では、
|
|
ASCII 互換のマッピングを有する。
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
ISO2022 エスケープシーケンスを使用しない。
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
単一の文字を表す複数バイトのいずれにおいても
|
|
<literal>00h</literal> から <literal>7fh</literal>
|
|
の値を使用しない。
|
|
</simpara>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</para>
|
|
<para>
|
|
PHP で動作しないと思われる文字エンコーディングの例を以下に示します。
|
|
<informalexample>
|
|
<programlisting>
|
|
<![CDATA[
|
|
JIS, SJIS, ISO-2022-JP, BIG-5
|
|
]]>
|
|
</programlisting>
|
|
</informalexample>
|
|
</para>
|
|
<para>
|
|
これらのエンコーディングで書かれた PHP スクリプトは、
|
|
特に符号化された文字列がスクリプトで記述子やリテラルに使用される場合には、
|
|
動作しない可能性がありますが、入力される HTTP クエリに関して
|
|
<literal>mbstring</literal> の透過的なエンコーディングフィルタを
|
|
設定することでこれらのエンコーディングをほとんど使用しないようにすることができます。
|
|
</para>
|
|
<note>
|
|
<para>
|
|
SJIS, BIG5, CP936, CP949, GB18030 は、読者がパーサー/コンパイラ、
|
|
文字エンコーディングと文字エンコーディングの問題点について精通していない限り
|
|
内部エンコーディングとして使用するべきではありません。
|
|
</para>
|
|
</note>
|
|
<note>
|
|
<para>
|
|
PHP でデータベースに接続する場合、性能を向上させるためにデータベースと PHP
|
|
の内部エンコーディングについて同じ文字エンコーディングを使用することを推奨します。
|
|
</para>
|
|
<para>
|
|
PostgreSQL を使用している場合、
|
|
バックエンドの文字エンコーディングと異なる文字エンコーディングを使用することが可能です。
|
|
詳細については、PostgreSQL のマニュアルを参照ください。
|
|
</para>
|
|
</note>
|
|
</chapter>
|
|
|
|
<!-- Keep this comment at the end of the file
|
|
Local variables:
|
|
mode: sgml
|
|
sgml-omittag:t
|
|
sgml-shorttag:t
|
|
sgml-minimize-attributes:nil
|
|
sgml-always-quote-attributes:t
|
|
sgml-indent-step:1
|
|
sgml-indent-data:t
|
|
indent-tabs-mode:nil
|
|
sgml-parent-document:nil
|
|
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
|
|
sgml-exposed-tags:nil
|
|
sgml-local-catalogs:nil
|
|
sgml-local-ecat-files:nil
|
|
End:
|
|
vim600: syn=xml fen fdm=syntax fdl=2 si
|
|
vim: et tw=78 syn=sgml
|
|
vi: ts=1 sw=1
|
|
-->
|
|
|