Develop and Download Open Source Software

最近の更新

2008-12-30
2007-12-06
2007-11-19
2007-11-14
2007-11-13
2007-11-07
2007-11-03
2007-11-02

Wikiガイド

ExtendScript、Creative Suite特有の情報

主として、Estherの処理中では、ダイアログボックスをユーザに示し、入力されたデータをドキュメントの内容に反映させる一方で、各値をJSON形式テキストに変換して、プレインテキストファイルへと出力します。

──詰まり、利用者が手ずから設定した値を保存しているのです。
これによって、次回に同じスクリプトを駆動した際、ダイアログボックス内に前回の設定値を反映させる、という行為を可能としています。

しかし、GUIのインタフェイス(テキスト入力欄など)から取得した値が文字列型で、且つ日本語の文字を含む場合、app.textExportPreferences.characterSetの値は顧みられることなく、ファイルへの出力時、文字コードは一律Shift_JISとなるようです。*1

万一、それらの中にShift_JISでは扱えない文字が存在した場合*2、ドキュメントへの適用は何ら問題なく行われるものの、JSON書き出し処理結果を見てみると、何も書かれていない白紙状態のファイルが生成されています。

この致命的な事態を未然に防ぐ為、本ソフトウェアは、文字列値を出力するにあたり、組み込み関数のencodeURIComponentでURIエンコードします。

これなら、一旦全ての文字をASCIIの収録範囲に変換して保存するので問題はありません。 そして、読み出し時にはdecodeURIComponent関数がそれを復元する訳です。


  1. *1おそらくは、プラットフォームの設定値に従っている動作
  2. *2この問題は、日本語に限らず、「Unicodeに登録されている文字で、Shift_JISに存在しない」もの全てに共通すると考えられる

SourceForge.JP is a Japanese version of SourceForge.net. For developments that are not related to Japan, we recommend you to use SourceForge.net.