長年勘違いしていたので……
書いた日:2017/12/18
NSLuaはBOM無しutf-8に対応している
dofileを試みるとエラーが出ていたのでてっきり非対応だと思っていたら全然そんな事はなかった。
ではなぜエラーが出るか?
メモ帳はBOM付きutf-8を出力する
普段Windows付属のメモ帳(notepad.exe)を使っていたせいで、utf-8にもBOMの有無がある事実に気付かずにいた。
つまりエラーの原因は先頭のBOMであり、
@BOM無しのutf-8で出力できるエディタを常用する
Adofile/NL_dofile/loadstring等を乗っ取り、BOMをカットして実行させる
どちらかの手段でNSLuaはutf-8ファイルを問題なく実行できる。
NScripter本体はsjisが前提である
一方、NScripter本体は完全にsjisを前提としている。
テキストやメッセージボックスへLuaからutf-8の文字列を渡したところで、滅茶苦茶に化けてしまうだけ。
プラグイン等でsjisに変換して渡すように徹底すれば日本語に関してはとりあえず表示できるが……
deffontd_u8.dllがutf-8のテキストを画面に出力できる
deffontd_u8.dllはろだのdeffontd.dll最新版に同梱されているプラグインで、utf-8の文字列をテクスチャへ出力できる。
テキスト表示を完全に乗っ取った上でこのプラグインを用いれば、NScripterが疑似的に多言語対応を実現できる。
ガラスグサに戻る