サクラエディタのキーマクロにおける文字コードの仕様と対策

サクラエディタのキーマクロファイル(.mac)は、デフォルトの文字コードとしてShift-JIS(SJIS)が想定されている。 そのため、Shift-JISで表現できない[UTF-8特有の文字(Unicode文字)]をマクロ内で扱う場合、とりわけ文字置換命令において[UTF-8特有の文字(Unicode文字)]を使う場合、以下の2つのアプローチのいずれかをとる必要がある。

ここで述べていることは、サクラエディタのキーマクロファイル(.mac)をテキストエディタで保存するときの文字コードセットとして、SJISを選ぶか、UTF8(BOM付き)を選ぶか、という話である。

1. コード値(16進数)でエスケープ指定する方法

マクロファイルを標準のShift-JISで保存したままUTF-8特有の文字を扱うには、文字を直接記述せず、文字コード(Unicodeのコードポイント)に変換して指定する。

記述例:

S_ReplaceAll('\x{2E83}', '\x{4E5A}', 46);
  • メリット:マクロファイル自体は従来のShift-JISのままで動作する。
  • デメリット:コード値での指定となるため、直感的にどの文字を指しているのかが分かりにくく、可読性が低下する。

2. マクロファイル自体を[UTF-8(BOM付き)]で保存する方法

もう一つの選択肢は、キーマクロファイル自体の保存文字コードを[UTF-8(BOM付き)]に変更することである。

  • 動作原理:サクラエディタは、BOM(Byte Order Mark)が付いているファイルに限り、文字コードがUTF-8であることを正しく認識できる。
  • メリット:マクロのコード内に、UTF-8特有の文字をエスケープ処理せずそのまま(生の文字として)記述できるようになり、メンテナンス性が大幅に向上する。

まとめ

キーマクロでUTF-8特有の文字を扱う場合は、可読性と管理のしやすさの観点から、後者の[マクロファイルをUTF-8(BOM付き)で保存し、文字をそのまま直接記述する]方法を推奨する。

サクラエディタのキーマクロ(.mac)のファイルで文字置換を行なうときにUTF8の文字を直接指定したい→UTF8(BOM付き)を選択する

マクロファイルの文字コード
(sakura:2.0.0.0以降)
通常のファイルはSJISとして読み込みます。
UTF-8BOM付きのファイルにすると、UTF-8として読み込みます。WSH、キーマクロではSJISにない文字列も直接扱うことができます。
━━━━━━━━━━━━━

引用元: マクロについて