encording

ReferenceTOPKeywords

コマンド

encoding -エンコーディングを処理します。

構文

encoding option ?arg arg ...?

導入

Tclにおける文字列は16ビットユニコード(Unicode)文字を使ってコード化されます。 異なるオペレーティングシステムのインターフェース、又はアプリケーションではShift-JISのような別 のエンコーディングで文字列を生成する場合があります。encodingコマンドはユニコードと他のフォーマット間のギャップを埋める役割を果 たします。

解説

optionによって下記のエンコーディングに関連する操作のいずれかを行います。合法的なoptionsは下記通 りです。

          encoding convertfrom ?encoding? data
          encoding convertto ?encoding? string
          encoding names
          encoding system ?encoding?
encoding convertfrom ?encoding? data
指定されたencodingdataをユニコードに変換します。dataにおける文字はバイナリデータとして扱われ、各文字の8ビットが1つのバイトとして扱われます。結果 のバイトシーケンスは指定されたencodingにおける文字列種類に従います。encodingが指定されていない場合、現在のシステムエンコーディングが採用されます。

encoding convertto ?encoding? string 
ユニコードのstringから指定されたencodingに変換します。結果のバイトシーケンスは変換された文字列の種類に依存します。各文字1バイトが8ビットユニコード文字として格納されます。encodingが指定されない場合、現在のシステムエンコーディングが採用されます。

encoding names
現在利用可能な全てのエンコーディングの名前を含むリストを返します。

encoding system ?encoding
システムエンコーディングをencodingに設定します。encodingが省略される場合、現在のシステムエンコーディングを返します。 Tclがシステムコールに文字列を渡すとき、常にシステムエンコーディングを使います。

通常テキストエディタを使って、スクリプトファイルを書く場合、エディタがASCII文字を1バイトで、日本語の文字を2バイトで表現されるeuc-jpエンコーディングに準じて出力を生成してくれます。単に文字列を適当なところに入力するだけで、非‐ASCII文字の文字列を文字通 りにスクリプトに嵌め込むことが簡単にできます。一方、 sourceコマンドは常にISO8859-1エンコーディングを使ってファイルを読み込むので、Tclは半角文字 ( ユニコードにおいて00ページまでに位置する ) としてファイル内の各バイトを扱います。その結果 、Tcl文字列は予想される日本語の文字を認識するのではなく、その代りに本来の文字列の各バイトと対応するLatin-1文字の列として処理してしまいます。encodingコマンドは文字列を予想される日本語のユニコード文字に変換するために使われます。例えば

set s [encoding convertfrom euc-jp "\xA4\xCF"]

はユニコード文字列"\u306F"(ひらがなの「は」)を返します。

キーワード

encoding


Copyright © 1998 by Scriptics Corporation. Copyright © 1995-1997 Roger E. Critchlow Jr.