Next: , Previous: , Up: Strings and Characters   [Contents][Index]


6.8.1 Characters

Forth は、 c@ などのワードで使用される char (別名バイト)をサポートします。 これらは ASCII 文字を表すために使用できます。

Forth は、 複数のバイト(つまり、 複数の char)のシーケンスで表現できる拡張文字(extended characters)もサポートしています。 一般的な文字エンコーディングは、 ユニコードの UTF-8 表現です。

一般に、 ほとんどのプログラム・コードは拡張文字(extended characters)について心配する必要はありません。 連なり(string)表現では、 当該バイトが拡張文字の一部であるか、 それ自体が1つの文字であるかは問題ではありません。 拡張文字が char のシーケンスとして転送される場合、 (emit のような) char を消費するワードも機能します。 Forth は未だ、 拡張文字を処理するためのワード群を提供しています(see Xchars and Unicode)。

ユニコード用語では、 char コード・ユニット、 拡張文字は コード・ポイント です。 Unicode 抽象文字(abstract character) はコード・ポイントのシーケンスとしで構成されますが、 (他のプログラミング言語と同様、 ) Forth には抽象文字個々のデータ型はないことに注意してください。 もちろん、 これらは連なり(string)として表すことができます。

スタック上の char および Xchar には通常の整数ワードを使用できますが、 Gforth にはスタック上の char を処理するためのワードもいくつかあります:

toupper ( c1 – c2 ) gforth-0.2 “toupper”

c1 が小文字の ASCII 文字である場合、 c2 は同等の大文字です。 それ以外の場合、 c2c1 は同じです。