無料PHPプログラム

MySQL 5.1 リファレンスマニュアル :: 4 データベース管理 :: 4.10 MySQL のローカライズと国際的使用 :: 4.10.3 新しいキャラクタ セットの追加
« 4.10.2 英語以外のエラーメッセージ

4.10.4 キャラクタ定義配列 »
Section Navigation      [Toggle]
  • 4.10 MySQL のローカライズと国際的使用
  • 4.10.1 データおよびソート用キャラクタ セット
  • 4.10.2 英語以外のエラーメッセージ
  • 4.10.3 新しいキャラクタ セットの追加
  • 4.10.4 キャラクタ定義配列
  • 4.10.5 文字列照合サポート
  • 4.10.6 マルチ バイト文字サポート
  • 4.10.7 キャラクタ セットに関する問題
  • 4.10.8 MySQL サーバのタイム ゾーン サポート
  • 4.10.9 MySQL サーバのローケル サポート

4.10.3. 新しいキャラクタ セットの追加

このセクションでは、MySQL へ新しいキャラクタ セットを追加する方法について説明します。この作業には、MySQL ソース配布が必要になります。キャラクタ セットがシンプルな場合と、コンプレックスな場合で、選択する手順が異なります。

  • キャラクタ セットが、ソートのために特殊文字照合ルーチンを必要とせず、マルチ バイト文字のサポートも必要なければ、シンプルと判断します。

  • どちらかを必要とする場合は、コンプレックスと判断します。

たとえば、latin1 と danish はシンプルですが、big5 や czech はコンプレックスです。

次の手順では、キャラクタ セットの名前を MYSET と前提とします。

シンプルなキャラクタセットの場合

  1. MYSET を sql/share/charsets/Index ファイルの最後に追加し、これに一意の番号を割り当てる。

  2. sql/share/charsets/MYSET.conf という ファイルを作成する(sql/share/charsets/latin1.conf のコピーをベースとして使用可能)。

    ファイルの構文は、非常にシンプル

    • コメントは ‘#’ 文字で始まり、行の最後まで続く。

    • 単語は任意の数のスペースで区切る。

    • キャラクタ セットを定義するときは、すべての単語を 16 進数値とする。

    • ctype 配列は、最初の 257 語を占める。to_lower[]、to_upper[]、sort_order[] などの配列はそれぞれ、その後の 256 語を占める。

    配列に関する詳細は 項4.10.4. 「キャラクタ定義配列」 を参照してください。

  3. キャラクタ セット名を、configure.in の CHARSETS_AVAILABLE リストおよび COMPILED_CHARSETS リストに追加する。

  4. 再設定してから、再コンパイルして、テストする。

コンプレックスなキャラクタ セットの場合

  1. MySQL ソース配布に strings/ctype-MYSET.c というファイルを作成する。

  2. MYSET を sql/share/charsets/Index ファイルの最後に追加し、これに一意の番号を割り当てる。

  3. strings/ctype-big5.c など、既存の ctype-*.c ファイルの 1 つを見て、何の定義が必要か調べる。注意: ファイル内の配列名には、ctype_MYSET、to_lower_MYSET などが必要。これは、シンプルなキャラクタ セットの配列に対応する。キャラクタ定義配列に関する詳細は 項4.10.4. 「キャラクタ定義配列」 を参照してください。

  4. ファイルの先頭付近に、次のようなコメントを置く。

    /*
     * This comment is parsed by configure to create ctype.c,
     * so don't change it unless you know what you are doing.
     *
     * .configure. number_MYSET=MYNUMBER
     * .configure. strxfrm_multiply_MYSET=N
     * .configure. mbmaxlen_MYSET=N
     */
    

    configure プログラムはこのコメントを使用して、自動的にキャラクタ セットを MySQL ライブラリに組み込む。

    必要に応じて、strxfrm_multiply のライン (文字列照合関数)、および mbmaxlen のライン (マルチバイト文字セット関数) を組み込む。これについては、後続のセクションで説明。

  5. そして、次の関数を作成する。

    • my_strncoll_MYSET()

    • my_strcoll_MYSET()

    • my_strxfrm_MYSET()

    • my_like_range_MYSET()

    配列照合に関する詳細は 項4.10.5. 「文字列照合サポート」 を参照してください。

  6. キャラクタ セット名を、configure.in の CHARSETS_AVAILABLE リストおよび COMPILED_CHARSETS リストに追加する。

  7. 再設定してから、再コンパイルして、テストする。

より詳細な手順は、sql/share/charsets/README ファイルにあります。

MySQL 配布バージョンへのキャラクタ セットの組み込みを希望する場合には、MySQL internals の メーリングリストにパッチをメールしてください。メーリング リストに関する詳細は 項1.6.1. 「MySQL メーリング リスト」 を参照してください。

Copyright c 1997, 2010, Oracle and/or its affiliates. All rights reserved. Legal Notices
Top / Previous / Next / Up / Table of Contents
© 2010, Oracle Corporation and/or its affiliates

無料CGI PHPスクリプト | 新着情報スクリプト | 営業日カレンダー | PHPマニュアル | MySQLマニュアル | PEARマニュアル

Copyright (c) 2010 jmcodex.com All rights reserved.