見出し画像

さとりすと: UTF-8 テキストファイルに対する挙動

里々(里々整備班カスタム)にはShift_JIS/UTF-8文字コードの自動判別機能が追加されましたが、さとりすとは長らく里々が採用していた Shift_JIS 固定で取り扱う仕組みを続けていました。

これはデータを読み込めばそれで良いベースウェアや里々と異なり、データを読み書きするさとりすとでは誤った文字コードでデータを扱うと内容を壊してしまうおそれがあったためです。

さとりすと 2.1.0 からできるだけ里々や各設定ファイルの指定にあわせる形で UTF-8 の文字コードでゴーストを編集できるようにしました。とはいっても里々の辞書やdescript.txtでは読み込むのが里々かベースウェアかの違いがあり、そこから文字コード指定方法の違いがあります。リリースノートだけでは流れてしまうので、この記事でもさとりすとが文字コードの取り扱いで使用しているルールをまとめました。

仕様

  • 指定がない場合はいずれもデフォルトの挙動として Shift_JIS として扱います。

  • テキストの内容から文字コードを推測して適用することはしません。

ghost の descript.txt, install.txt

それぞれのファイル上の charset の指定が UTF-8 の場合にそのファイルはUTF-8として「読み書き」します。

shell の descript.txt, surfaces.txt, surfacetable.txt

それぞれのファイル上の charset の指定が UTF-8 の場合にそのファイルはUTF-8 として「読み」ます。

里々の辞書 (dic*.txt), satori_conf.txt, replace.txt, replace_after.txt, satori_savedata.txt, satori_savebackup.txt,その他ファイルイベントツリーに読み込まれるテキストファイル

里々整備班カスタム Mc169-1~Mc169-3 で追加された satori_bootconf.txt の指定に従い「読み書き」します。

satori_bootconf.txt を追加 起動時の辞書・セーブデータ読み込み前の設定ファイル。今のところ文字コードがらみのみ。なくても動きます。

is_utf8_dic,true = 全辞書を強制的にUTF-8扱い
is_utf8_replace,true = replace/replace_afterを強制的にUTF-8扱い

リリースノート: Mc169-1

satori_bootconf.txt に is_utf8_savedata を追加

リリースノート: Mc169-2

is_utf8_charactersini を追加 (characters.iniの文字コード)
is_utf8_all を追加 (is_utf8_* シリーズを全部制御)

リリースノート: Mc169-3

developer_options.txt, delete.txt

satori_bootconf.txt の is_utf-8_all 設定に従い「読み書き」します。

is_utf8_satolist_delete,true
is_utf8_satolist_developer_options,true
の指定があれば、そちらを優先します。

delete.txt, developer_options.txt には使用上文字コード設定するところがありません。そのためさとりすと特有の特殊な方法を使わざるを得ませんでした。

ご注意

さとりすとが実際と異なる誤った文字コードでデータを読み込み、文字化けしてしまった場合は絶対に保存せずに一旦さとりすとを閉じてください。
文字化けしたまま上書き保存すると、戻すのが結構面倒です。

その後上記の仕様から文字コード設定を見直して、さとりすとが正しくファイルを開ける状態で編集を行ってください。


この記事が気に入ったらサポートをしてみませんか?