## Tcl8.6.17/Tk8.6.17 Documentation > Tcl Commands > encoding

### Tcl/Tk Applications | Tcl Commands | Tk Commands | [incr Tcl] Package Commands | SQLite3 Package Commands | TDBC Package Commands | tdbc::mysql Package Commands | tdbc::odbc Package Commands | tdbc::postgres Package Commands | tdbc::sqlite3 Package Commands | Thread Package Commands | Tcl C API | Tk C API | [incr Tcl] Package C API | TDBC Package C API

  NAME
    encoding — 符号系の操作 Manipulate encodings
  構文 SYNOPSIS
  緒論 INTRODUCTION
  説明 DESCRIPTION
    encoding convertfrom ?encoding? data
    encoding convertto ?encoding? string
    encoding dirs ?directoryList?
    encoding names
    encoding system ?encoding?
  用例 EXAMPLE
  SEE ALSO
  KEYWORDS

### NAME

encoding — 符号系の操作 Manipulate encodings

### 構文 SYNOPSIS

encoding option ?arg arg ...?

### 緒論 INTRODUCTION

Tcl の文字列は論理的には１６ビット ユニコード文字の並びである｡この文字列は記憶装置の中でバイトの並びとして表現されており､それらは幾つかの符号体系の内の一つであるかもしれない: 修正した UTF-8 (それは一文字につき１乃至３バイト使用する)や､１６ビット “ユニコード” (文字毎に２バイト使う､使われる機種の構造に依存した大小順並びになる)や､二進数(１文字に１バイトしか使わないが限られた範囲の文字のみを扱う)｡ Tcl は同じ文字列に常に同じ符号体系を使うことは保障しない｡ 　 　　 Strings in Tcl are logically a sequence of 16-bit Unicode characters. These strings are represented in memory as a sequence of bytes that may be in one of several encodings: modified UTF-8 (which uses 1 to 3 bytes per character), 16-bit “Unicode” (which uses 2 bytes per character, with an endianness that is dependent on the host architecture), and binary (which uses a single byte per character but only handles a restricted range of characters). Tcl does not guarantee to always use the same encoding for the same string.

種々のOSシステム対話機能や応用譜はシフトJISの様な別の符号系の文字列を生成する事もある｡この encoding 命令は､ユニコードと､他の形式との隙間の橋渡しを手助けする｡ 　　　 Different operating system interfaces or applications may generate strings in other encodings such as Shift-JIS. The encoding command helps to bridge the gap between Unicode and these other formats.

### 説明 DESCRIPTION

指示項目 に従って幾つかの符号系に関する操作のどれかを遂行する｡有効な指示項目は以下の通り: 　　　 Performs one of several encoding related operations, depending on option. The legal options are:

encoding convertfrom ?encoding? data
  データ を指定した符号系からユニコードに変換する｡データ 内の文字は二進のデータとして扱われ､それぞれの文字の下位８ビットが１バイトとして扱われる｡結果のバイトの並びは指定された符号系 encoding の文字列として扱われる｡もし､ 符号系 encoding が指定されていないと､現在のシステムの符号系が使用される｡ 　　　 Convert data to Unicode from the specified encoding. The characters in data are treated as binary data where the lower 8-bits of each character is taken as a single byte. The resulting sequence of bytes is treated as a string in the specified encoding. If encoding is not specified, the current system encoding is used.

encoding convertto ?encoding? string
  文字列 string をユニコードから指定された符号系 encoding に変換する｡結果は､変換された文字列を表すバイト列である｡各バイトはユニコード文字の下８ビットに保存される(実際､ Tcl に関する限り結果の文字列は二進文字列である､少なくとも最初は)｡もし､ 符号系 encoding が指定されていないと､現在のシステムの符号系が使用される｡ 　　　 Convert string from Unicode to the specified encoding. The result is a sequence of bytes that represents the converted string. Each byte is stored in the lower 8-bits of a Unicode character (indeed, the resulting string is a binary string as far as Tcl is concerned, at least initially). If encoding is not specified, the current system encoding is used.

encoding dirs ?directoryList?
  Tcl は､使って動作する為に､追加的な符号系を記述した符号体系データ・ファイルをファイルシステムから積み込むことができる｡この命令は､ *.enc の符号体系データ・ファイルの為の捜索経路をディレクトリーのリスト directoryList に設定する｡もし､ directoryList が省略されると､この命令は捜索経路を作り上げた現在のディレクトリーのリストを返す｡ directoryList が適切なリストでないと不具合になる｡符号体系データ・ファイルの捜索が生じたとき､ directoryList の要素が捜索可能なディレクトリーの読出し可能のものを参照してないと､その要素は無視される｡ 　　　 Tcl can load encoding data files from the file system that describe additional encodings for it to work with. This command sets the search path for *.enc encoding data files to the list of directories directoryList. If directoryList is omitted then the command returns the current list of directories that make up the search path. It is an error for directoryList to not be a valid list. If, when a search for an encoding data file is happening, an element in directoryList does not refer to a readable, searchable directory, that element is ignored.

encoding names
  現在利用できる全ての符号系の名前を含むリストを返す｡そのリストに符号系 “utf-8” と “iso8859-1” がある事は保障されている｡ 　　　 Returns a list containing the names of all of the encodings that are currently available. The encodings “utf-8” and “iso8859-1” are guaranteed to be present in the list.

encoding system ?encoding?
  システムの符号系を encoding に設定する｡もし､ encoding が省略されると､この命令は､現在のシステムの符号系を返す｡Tcl が文字列をシステム呼出に渡すときは､何時もそのシステム符号系が使用される｡ 　　　 Set the system encoding to encoding. If encoding is omitted then the command returns the current system encoding. The system encoding is used whenever Tcl passes strings to system calls.

### 用例 EXAMPLE

次の例では､日本語 euc-jp 符号系のバイト列を TCL 文字列に変換する: 　 The following example converts a byte sequence in Japanese euc-jp encoding to a TCL string:

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

結果はユニコードの符号番号 “\u306F” で､これは平仮名の「は」である｡ 　 The result is the unicode codepoint: “\u306F”, which is the Hiragana letter HA.

[訳註:encoding命令が導入されたtcl8.1版から8.6.11版迄は 用例Example の項目は以下の様に記述されていた｡

『アスキー文字を１バイト､日本語文字を２バイトで表現する euc-jp 符号系の出力を生成する文章校正譜を利用して記述譜を書くことは､普通の実務である｡この方法によれば､非アスキー文字に相当する文字列の埋込みは､記述譜のその場所への単なる文字列の打鍵入力で､容易に行える｡ source 命令は常に現在のシステムの符号系を使用してファイルを読むので､Tcl は､ファイルを書く時に同じ符号系を使ったファイルだけを正しく 源プログラムにする､けれども｡これは､国際化された設定では正しくなくなる｡譬えば､もし､北米で(其処では､通例､ ISO8859-1 が使用される)源プログラムにされたファイルは､ファイル中の各バイトはユニコード00頁に位置づけされ､別々の文字として扱われる｡結果としてTcl文字列は､意図した日本語文字を含んでいない｡代りに､元のバイトに相当するLatin-1文字の並びを含むことになる｡ encoding 命令は､この文字列を意図した日本語ユニコード文字に変換できる｡譬えば｡ 　　　 It is common practice to write script files using a text editor that produces output in the euc-jp encoding, which represents the ASCII characters as singe bytes and Japanese characters as two bytes. This makes it easy to embed literal strings that correspond to non-ASCII characters by simply typing the strings in place in the script. However, because the source command always reads files using the current system encoding, Tcl will only source such files correctly when the encoding used to write the file is the same. This tends not to be true in an internationalized setting. For example, if such a file was sourced in North America (where the ISO8859-1 is normally used), each byte in the file would be treated as a separate character that maps to the 00 page in Unicode. The resulting Tcl strings will not contain the expected Japanese characters. Instead, they will contain a sequence of Latin-1 characters that correspond to the bytes of the original string. The encoding command can be used to convert this string to the expected Japanese Unicode characters. For example,

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

は､ユニコード文字列 “\u306F” になり､これは平仮名文字の｢は｣である｡ 　　　　 would return the Unicode string “\u306F”, which is the Hiragana letter HA.

』 が､tcl8.6.12版から上記の様に変更された]

### SEE ALSO

Tcl_GetEncoding, fconfigure

### KEYWORDS

encoding, unicode
Copyright © 1998 Scriptics Corporation.