データ結合の文字コード判定について
はじめまして。
【データ結合の文字コード判定】について質問です。
JavaScriptからデータ結合のCSVファイル(Shift-JIS)を読み込んだ場合に
文字コードを設定してもASCIIで読み込まれてしまう時があり
これを制御する方法に悩んでいます。
InDesign側で文字コード自動判定など仕様があるのでしょうか?
■環境
WindowsXP+SP3,InDesignCS4 バージョン6.0
■OK:CSV --> Shift-JISで読み込まれる
====================
no,name_1
1,鈴木 太郎
2,鈴木 花子
■NG:CSV --> ASCIIで読み込まれる
====================
no,name_1,aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,bbbbbbbbbbbbbbbbbbbbbb,ccc cccccccccccccccccccccccccccccc,dddddddddddddddddddddddddddddddd,eeeeee eeeeeeeeeeeeeeeeeeeeeeeeee,fffffffffffffffffffffffffffff,ggggggggggggg ggggggggggggggggggggg
1,鈴木 太郎,a,b,c,d,e,f,g
2,鈴木 花子,a,b,c,d,e,f,g
■スクリプト
/*
* データ結合
*/
function main() {
//CSVファイル開く
var dataFile = File.openDialog("CSVファイルを指定してください。");
if (!dataFile) {
return;
}
//データ結合のオブジェクト
var doc = app.activeDocument;
var dmg = doc.dataMergeProperties;
fileObj = new File(dataFile);
//この状態ではエンコードはNULLが表示
alert(fileObj.encoding);
fileObj.encoding = "Shift_JIS";
dmg.selectDataSource(fileObj);
// Shift_JISを特定してもNGファイルはACSIIになってしまう。
alert(fileObj.encoding);
return;
}
main();
何か良い方法はありますでしょうか?
よろしくお願いします。
自己レスです。
この方法が正しいとは思えませんが、、
ファイル内に2バイト文字(25文字以上)が含まれていると
Shift_JISと判定し取り込めました。
※24文字以下だと取り込みエラーとなってしまいます。
■OK:CSV 2バイト文字が25文字以上含まれるとShift_JISとなる
====================
no,name_1,あああああああああああああああああああああああああ,aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa, bbbbbbbbbbbbbbbbbbbbbb,ccccccccccccccccccccccccccccccccc,ddddddddddddd ddddddddddddddddddd,eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee,fffffffffffffffff ffffffffffff,gggggggggggggggggggggggggggggggggg
1,SUZUKI TARO,,a,b,c,d,e,f,g
2,SUZUKI HANAKO,,a,b,c,d,e,f,g
今回はCSVに項目(2バイト文字)をプログラムで追加してから
読み込むように一先ず対応しましたが、、
正しい方法をわかるかたおりましたら
ご教授いただきたいと思います。
よろしくお願いします。
North America
Europe, Middle East and Africa
Asia Pacific
Copyright © 2012 Adobe Systems Incorporated. All rights reserved.
Use of this website signifies your agreement to the Terms of Use and Online Privacy Policy (updated 07-14-2009).