互換性メモ: 4Dは2つの文字セット、UnicodeまたはASCIIのいずれかで動作します。バージョン11以降、4D の標準モードはUnicodeです。ASCIIモードは以前のバージョンの4Dで作成されたデータベースの互換性のために保持されているモードです。このモードはASCII互換モードと呼ばれます。
Get database parameterとSET DATABASE PARAMETERコマンドのUnicode Modeセレクタ、または環境設定の互換性ページにあるUnicodeモードオプションで、変換されたデータベースにUnicodeモードを適用できます。

ほとんどの場合、この設定によってアプリケーションの初期機能が影響を受けることはありません。4Dはすべての必要な文字変換を内部で処理します。更に、多くの共通な文字 (a-z、0-9など) は、UnicodeとASCII(WindowsとMac OS)の両方において同じ値(1から127) が使用されます。
しかし、特に文字列に対して機能するコマンドを使用するランゲージステートメントでは、注意が必要です。例を挙げると、ステートメントChar(200) は、ASCIIとUnicodeで同じ値を返しません。このマニュアルでは、関連する各コマンドのUnicodeモードとASCII互換モード間の機能の違いについて説明します。
日本語を扱う際の注意: 4Dで日本語を使用する場合、Unicodeモードを使用することを強く推奨します。文字列を扱ういくつかのコマンドは、データベースがASCII 互換モードで動作していても、文字列処理にUnicodeのICUライブラリを使用します。この場合の動作は以前のバージョンと同じにならない場合があります。
Note: このモードはデータベースごとに適用されます。従ってUnicodeデータベースで非Unicodeコンポーネント(またはその逆)を使用できます。
データベースがASCII互換モードで開かれるとき、MacintoshとWindows両方で、内部データベースエンジンと4DランゲージはMacintoshの拡張ASCIIセットを使用します。キーボードを使用してデータを入力する際 (レコードの追加、メソッドの編集など)、4Dは内部的なAltura ASCII変換スキームを使用してキーボードから入力される (Windowsセットで表現された) 文字をMacintoshセットに変換します。例えば“e”を入力するにはALT+0233とタイプします。4DはASCIIコード142をレコードに格納します。検索を行う際などは検索エディタに同様に探したい文字を打ち込むので、これはエンドユーザに対して透過的です。つまりタイプした値 (ALT+0233) はここでもASCIIコード142に翻訳され、値を検索できます。
メソッドエディタにALT+0233とタイプした場合も同様に動作します。しかしASCIIコードを使用して文字を探すためには、文字のMacintosh ASCIIコードを使用してください。
例えば:
QUERY(...;[MyFile]MyField="e")
これは以下のコードと同じです:
QUERY(...;[MyFile]MyField=Char(142))
- 0から127の標準ASCIIコードはWindowsとMacintoshで共通です。
- 128から255のASCIIコードはWindowsとMacintoshで異なります。プラットフォーム間の差異を保守するために、Windows版の4Dは、4D環境に文字が入力 (データ入力、編集/ペーストなど) されると自動でASCIIコードがWindowsからMacintoshのASCIIマップに変換され、4D環境から文字が出力 (編集/カットやコピー、書き出し等) される際にはMacintoshからWindows ASCIIマップに変換されます。
ASCII コード 0 ~ 63


ASCII コード 64 ~ 127


ASCII コード 128 ~ 191




ASCII コード 192 ~ 255




Note: 灰色で塗りつぶされたボックスは、Windowsで使用できない文字か、Macintoshと異なる文字を示しています。