1 返信 最新の回答 日時: May 13, 2010 6:53 PM ユーザー:Hanzii55

    データ結合の文字コード判定について

    Hanzii55

      データ結合の文字コード判定について

      はじめまして。
      【データ結合の文字コード判定】について質問です。

      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,ccccccccccccccccccccccc cccccccccc,dddddddddddddddddddddddddddddddd,eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee,fffffffffffff ffffffffffffffff,gggggggggggggggggggggggggggggggggg
      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();

      何か良い方法はありますでしょうか?
      よろしくお願いします。

        • 1. Re: データ結合の文字コード判定について
          Hanzii55 Level 1

          自己レスです。

          この方法が正しいとは思えませんが、、
          ファイル内に2バイト文字(25文字以上)が含まれていると
          Shift_JISと判定し取り込めました。

          ※24文字以下だと取り込みエラーとなってしまいます。


          ■OK:CSV 2バイト文字が25文字以上含まれるとShift_JISとなる
          ====================
          no,name_1,あああああああああああああああああああああああああ,aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,bbbbbbbbbbbbbbbbbbbb bb,ccccccccccccccccccccccccccccccccc,dddddddddddddddddddddddddddddddd,eeeeeeeeeeeeeeeeeeee eeeeeeeeeeee,fffffffffffffffffffffffffffff,gggggggggggggggggggggggggggggggggg
          1,SUZUKI TARO,,a,b,c,d,e,f,g
          2,SUZUKI HANAKO,,a,b,c,d,e,f,g

           

          今回はCSVに項目(2バイト文字)をプログラムで追加してから
          読み込むように一先ず対応しましたが、、

           

          正しい方法をわかるかたおりましたら
          ご教授いただきたいと思います。

          よろしくお願いします。