Palm Programmer's Laboratory

トップ 差分 一覧 ソース 検索 ヘルプ RSS ログイン

Palm OS Programmer's Companion Volume I/8-1

↑8 章トップへ 2 節に進む →


8-1 テキストマネージャと国際化マネージャ

 
Palm OS はローカライズ可能な文字列と文字の使用を支援する2つのマネージャを提供しています。これらのマネージャはテキストマネージャと国際化マネージャと呼ばれます。

コンピュータはアルファベットの文字を数値コードで表現します。ある言語の文字のための数値コードのセットを文字エンコーディングと呼びます。もちろん、文字エンコーディングにはアルファベット文字以上のものが含まれています。区切り文字や数字、コントロール文字、およびその他の重要とみなされる文字がエンコードされます。ある文字列エンコーディングが表現する文字のセットを文字セットと呼びます。

異なる言語は異なる文字を使用します。ほとんどのヨーロッパ言語はラテンアルファベットを使用します。ラテンアルファベットは比較的小さいため、その文字は単一バイトエンコーディングの 32 〜 255 の範囲内を使用して表現できます。一方、中国語、韓国語、および日本語といったアジアの言語は、それぞれが独自に多数の文字を持っています。これらの大きな文字セットは、単一バイトとダブルバイトの組み合わせによる 32 〜 65535 の範囲で表現されます。

Palm ハンドヘルドは単一の文字エンコーディングをサポートします。Palm OS 自体は複数の文字エンコーディングをサポートするのですが、特定のハンドヘルドはそのうちの1つだけを使用します。例えば、フランスのハンドヘルドは Palm Latin エンコーディングを使用します。これは Microsoft Windows のコードページ 1252 の文字エンコーディング( ISO Latin 1 の拡張 )と同一のものですが、コントロール領域に Palm 特有の文字を含んでいます。一方、日本のハンドヘルドは Palm Shift JIS エンコーディングを使用します。これは Microsoft Windows のコードページ 932 ( Shift JIS の拡張 )と同一ですが、コントロール領域に Palm 特有の文字を含んでいます。両者は同じバージョンの Palm OS を使用しているにも関わらず、コードページ 932 はフランスのハンドヘルドではサポートされませんし、コードページ 1252 は日本のハンドヘルドではサポートされません。ハンドヘルド上のエンコーディングがなんであるかに関わらず、Palm は下位の ASCII 文字( 0 〜 0x7F )が同一であることを保証します。このルールの例外は 0x5C で、日本のハンドヘルドでは円記号に、それ以外の全てのハンドヘルドではバックスラッシュになります。

テキストマネージャは文字エンコーディングに依存しないテキスト、文字列、文字の操作を可能にします。テキストマネージャ関数を使用して文字列データを直接操作しないようにすれば、ハンドヘルドがサポートする言語や文字エンコーディングに関係なく、コードはどのシステムでも動作するはずです( テキストマネージャがサポートされている限りは )。

国際化マネージャの仕事は、ハンドヘルドが使用している文字エンコーディングを検出して対応するバージョンのテキストマネージャを初期化することです。国際化マネージャはどのエンコーディングとフォントが使用されているかを識別するフィーチャも設定します。ほとんどの場合、国際化マネージャを直接操作することはありません。

 


↑8 章トップへ 2 節に進む →