だめ文字と回避方法
提供: Arcanum JP Wiki
だめ文字
- } (0x40)、@ (0x7D)と、これらを下位バイトに含むマルチバイト文字は使用できない
- }: マ・急・枝・図・挿など
- }はdlg/mesファイル内においてIDや各文章の区切り文字として使用されているため
- @: 全角スペース・院・機・堀・叩など
- @はdlg/mesファイル内において@pcname@のような変数として使用されているため
- {は使えるが、}が駄目なので特に使う必要性が無い
- 全部で80文字程度
- }: マ・急・枝・図・挿など
- 未検証
- 典型的な%dや%sも変数として使用されているので、%も普通には使えないはず
- 恐らく\%で使えるのでは?
- 典型的な%dや%sも変数として使用されているので、%も普通には使えないはず
だめ文字の回避方法
- {, }, 単体の @ は原文でも使用されておらず、文中で使用する状況はまず無いので使用しない方向で
- それ以外のマルチバイト文字は外字を使用することで回避可能かも
- デメリット
- 既に別の用途でなんらかの外字登録をしている場合、以前の外字が外字のリンクを解除しない限り使用できない
- 手動でやるのは大変面倒
- だめ文字を検出して外字領域の文字コードに置き換えるコンバータは作った
- 翻訳時にはだめ文字を含むデータを編集して、パッケージング直前のみにコンバート済みファイルを使用しないと、外字を含むファイルが翻訳途中のファイルに混在することになるので切り分けた方がよさげ
- ファイルの流れ
だめ文字を含む通常ファイル A ←→ ファイル A を翻訳
↓
ファイル A をだめ文字の置換コンバートにかける
↓
外字を含むコンバートファイル B (ファイル A は上書きしないで残す)
↓
ファイル B を dat 化
- とりあえず外字領域も解釈して文字出力してくれることは確認したが、問題点が出てくるかもね