encode decode –LiveCode備忘録

LiveCode

フィールドの内容(日本語まじり)をテキストファイルに書き出す。
書き出しはUTF8。これを従来LC6までは
 on mouseUp
  ask file “”
put it into tFile
open file tFile for text write
get the unicodeText field “data2” –ユニコードテキストとして取り出して
write uniDecode(it,utf8) to file tFile –utf8にデコードして書き込む
close file tFile
end mouseUP
ユニコードテキストとして取り出さず、ただget field…すると文字化けする。
つまり、utf16でとりだして、utf8に戻して書き込んでいる。

これがLC7からは
on mouseUp
  ask file “”
put it into tFile
open file tFile for text write
put textEncode(field “data2″,”utf8”) into tOutPut –utf8にエンコードして変数へ
write tOutPut to file tFile –特に何もせず書き込む
close file tFile
end mouseUp

これで文字化けせずに書き込めるようになったらしい。フィールドの内容を直接utf8にしてしまい、それを書き込んでいる。
これは書き込む内容がフィールドの中身だけではなく、変数からでも同じように機能する。
 なんか知らない間に色々新機能が出ているらしい。従来の方法がいつまで継続して使えるかわからないのでスクリプトの書き換えが必要になるかもしれないが、これは頻繁に使っている部分なので、大変そうだ。
 もともとダブルバイト文字に対応していなかったものを対応させてくれているのだから文句は言えないところ。今回の発見で、少し楽になるのかな、とも思う。
 最近勉強しているXMLをLiveCodeで使うのにも、かなり必要。日本語の混じるデータでは必ず何処かのタイミングでエンコード、デコードしないと文字化けするし、検索にも引っかからなくなるし。なんだかなぁ。

コメント

タイトルとURLをコピーしました