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 は同等の大文字です。 それ以外の場合、 c2 と c1 は同じです。