UTF-16LEでのファイル出力

[4730]UTF-16LEでのファイル出力 | 投稿者:紅陽 | 投稿日:2010/05/27(Thu) 14:03:46
環境:Mac OSX 10.4.1.1
アプリ:InDesign CS3

InDesignというよりCoreJavaの質問になってしまうのですが

InDesignCS3よりテキストファイルを書出し、
データベースにそのテキストを読み込む際に
UTF-16LEでの文字コード指定をうけました。
UTF-16LEで文字コードを指定してテキスト書出しをしても
書き出したテキストの文字コードはCP932(デフォルト?)に
なってしまいます。
ソースは以下です。

var myFile=new File(「ファイルパス」);
myFile.encoding="UTF16LE";
myFile.open("w");
myFile.write("ああああ");
myFile.close();

File.encodingをUTF-8やShift_JISに変えての書出しは
ちゃんと指定通りになります。
これはCoreJaveがUTF-16の書出しに対応していないのでしょうか?

どなたか心当たりのある方いらっしゃいますか?
» 1
[4731]Re: UTF-16LEでのファイル出力 | 投稿者:お~まち | 投稿日:2010/05/27(Thu) 15:36:23
『JavaScript Tools Guide CS3.pdf』の42ページ目に、使用できるエンコードの一覧がありますが、「UTF16LE」でも「UTF-16LE」でも指定できることになっています。

Windows 7, ExtendScript Toolkit 2.0.2.77 でやってみました(確認はMifes for Windows 8.0.6)。

この場合「UTF16LE」でも指定どおりに書き出されますが、エディタの方で誤判断(シフトJIS)をしました。「UTF-16LE」ですと、指定どおり書き出されますし、エディタの方でも正しく判断されました。
もしかして「UTF16LE」と「UTF-16LE」で何か違うのかもと、バイナリレベルで比較しましたが同じでした。
何回かやっているうちに、エディタの方での誤判断がなくなってしまい、それ以上の確認はできませんでしたが、PDFファイルにあるエンコードを色々やってみると一番扱いに適した表現のものがあるかもしれません。
» 2
[4732]Re: UTF-16LEでのファイル出力 | 投稿者:紅陽 | 投稿日:2010/05/27(Thu) 18:25:17
お~まち様ありがとうございます。

本当ですね。バイナリエディタで確認すると「UTF-16LE」で書き出すことが出来ているんですね。
テキストエディタとスクリプト上で誤判断していたのでてっきり無理かと思っていました。
Windowsでスクリプトを使用して書き出したもの
Windowsでエディタを使用して書き出したもの
Macでスクリプトを使用して書き出したもの
Macでエディタを使用して書き出したもの
等々バイナリ上で確認しましたが全て同じでしたので大丈夫そうです。

大変たすかりました。
ありがとうございます。
この記事の書き込み元へのリンク (コメントや質問などはこちらへどうぞ)

このページをシェア