|
h-tom です。
ネタ向けの話題です。
unicode関連の話で、現状、iniファイルアクセス関数、文は、unicodeに対応
していません。
マクロ自体が、UTF-16で書くことが可能になったことや、dllfuncw等の追加も
あり、iniファイル関連もunicode対応してくれると、ありがたいです。
で、API周りを調べてみたのですが、
・WritePrivateProfile〜/GetPrivateProfile〜のunicode用関数は、NT系のみ。
・既存のunicodeファイルに対しては、unicodeでアクセスできるが、それ以外
はシステムロケール(CP932)でアクセスする。
(unicode/ANSI用関数共に同じ動作だけど、おそらくNT系のみの動作?)
・iniファイルを新規作成する場合は、システムロケール(CP932)で作成する。
(unicode/ANSI用関数共に)
ということがわかりました。
試しに、iniファイルをUTF-16LEで保存し、秀丸マクロのwriteinistr/getinistr
でアクセスしてみましたが、Shift_JIS範囲内の文字なら、読み書き共に問題ない
です。
ということで、Unicodeに対応するにしても、
・NT系限定
・Unicodeを扱う場合は、先にUnicodeでファイルを作成しておく必要がある。
あたりが、問題になりそうですね。
あとは、UTF-16-UTF-8の相互変換関数を追加して、UTF-8で書き込むくらいで
すかね?
|
|