HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2008
0507
ふくながUTF-82解決


ふくなが

リンク

2008/5/7(Wed) 17:49:04|NO.15708

たびたびすいません。
文字列変数をUTF-8形式のテキストファイル(setup.ini)として出力したいのですが
どのようにすればいいのでしょうか。
Unicodeの文字の変換にはcnvstowという命令があるみたいですが、
UTF-16とUTF-8の違いは何なんでしょうか。



この記事に返信する


inovia

リンク

2008/5/8(Thu) 01:41:53|NO.15724

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で保存しました。"



ふくなが

リンク

2008/5/10(Sat) 15:30:38|NO.15769

ありがとうございました。



ONION software Copyright 1997-2023(c) All rights reserved.