UTF-8と16の違いについて参考になりそうなURL。
http://www.atmarkit.co.jp/fxml/askxmlexpert/024utf/24utf.html
下記のスクリプトは出所不明。(忘れてしまいました。)
cnvstow命令はUTF-16な気がします。(多分)
; Shift-JIS <-> UTF-8 Convert module
; Supported OS : Windows 98 or later
#module "sjis2utf8"
#uselib "kernel32"
#func _mb2wc "MultiByteToWideChar" int, int, sptr, int, sptr, int
#func _wc2mb "WideCharToMultiByte" int, int, sptr, int, sptr, int, int, int
#define CP_ACP 0
#define CP_UTF8 65001 ; win 98 or later
#deffunc sjis2utf8n var dest, str src
; SJIS -> Unicode
len_uni = strlen(src) * 2
sdim str_uni, len_uni + 1
cnvstow str_uni, src
; Unicode -> UTF-8
_wc2mb CP_UTF8, 0, varptr(str_uni), -1, 0, 0, 0, 0
len_utf8 = stat
memexpand dest, len_utf8 + 1
_wc2mb CP_UTF8, 0, varptr(str_uni), -1, varptr(dest), len_utf8, 0, 0
; UTF-8 length
return len_utf8
#defcfunc utf8n2sjis var dest
; UTF-8 -> Unicode
_mb2wc CP_UTF8, 0, varptr(dest), -1, 0, 0
len_uni = stat
sdim str_uni, len_uni + 1
_mb2wc CP_UTF8, 0, varptr(dest), -1, varptr(str_uni), len_uni
; Unicode -> SJIS
return cnvwtos(str_uni)
#global
test={"
[TEST]
test1=test
test2=test
test3=test
test4=test
"}
mes test
//UTF16で保存
u_test=""
sdim u_test,256
cnvstow u_test,""+test
bsave "utf16.ini",u_test
mes "UTF-16で保存しました。"
//UTF8で保存
u_test=""
sjis2utf8n u_test,""+test
notesel u_test
notesave "utf8.ini"
mes "UTF-8で保存しました。"