使用例3(メッセージをコード変換して出力(std::cout互換=型安全な方法)) 使用例4(UTF-16, UTF-32との変換) C++20への対応 関数一覧 std::wstring ansi_to_wide(const std::string &s) std::string wide_to_ansi(const std::wstring &s) std::wstring sjis_to_wide(const std::string...
localUTF8toSJIS=require("UTF8toSJIS")localUTF8SJIS_table="Utf8Sjis.tbl"localdirectory=[[C:\Users\USERNAME\ほげほげ\ふがふが\]]-- 日本語入りパスlocalfht=io.open(script_path()..UTF8SJIS_table,"r")localstrUTF8,strSJIS,sj_lengthlocalsjisdirectory=""strSJIS,sj_length=UTF8toSJIS:UTF8...
利用後は chcp 932 でSJIS 表示モードに戻すこれらの対応が必要な理由は、Windows のコマンドプロンプトがいまだに SJIS (Shift-JIS) という古い文字コードで動作しているからです。インターネット系のプロトコルは基本 UTF-8 なので、工夫しないとこういった文字化けが発生してしまいます。
CP932からUTF-8へのコード変換を行う(file.c:rb_str_encode_ospath() で、この変換を行っている)ためにenc/trans/transdb.oとenc/trans/japanese_sjis.oをスタティックリンクする 以下は、上記解決策を行うためのパッチとビルド手順である diff --git a/dmyenc.c b/dmyenc.c index 7e...