Free Pascal 2.x で日本語処理(3)

Free PascalコンパイラにソースコードのエンコーディングがUTF-8であることを認識させる方法は以下の3つがあります。

① コンパイル時に、コンパイラオプションの -FcUTF8 を指定する。
② ソースコード中にディレクティブの {$CODEPAGE UTF8} または {$CODEPAGE UTF-8}
を指定する。

③ ソースコードを BOM付きのUTF-8エンコーディングで保存する。

①~③はどれか1つで有効です。組み合わせても問題はありません。
①,②のソースコードのエンコーディングは、BOM無しのUTF-8でOKです。BOM付きのUTF-8にすると③も有効になります。

ソースコードをBOM無しのUTF-8エンコーディングで保存し、①のコンパイルオプションも②のディレクティブも指定しない場合、コンパイラはソースコードに対してUTF-8という認識はしません。

UTF-8のBOM(byte order mark)とは、ファイルの先頭3バイトに、$EF,$BB,$BF を付けたものです。③では、コンパイラがこの3バイトを認識してUTF-8と判断します。
UTF-8に対応したテキストエディタでは、ファイル作成時または保存時に、UTF-8(BOM付き)とUTF-8(BOM無し)の指定ができるはずです。もしくは、テキストエディタのオプションでBOMを付けるか付けないかの指定があるかもしりません。
BOM付きのUTF-8を「UTF-8」、BOM無しのUTF-8を「UTF-8N」と指定するエディタもあります。


先の投稿の「Free Pascal で日本語処理(1)」と「Free Pascal で日本語処理(2)」で、ソースコードをUTF-8で保存してくださいというのは、BOM無しのUTF-8エンコーディングで保存することを前提としています。その上で、UTF-8の認識を {$CODEPAGE UTF8} で切り替えるようにしています。事前説明が漏れていました。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください