忍者ブログ

ぼんぷろぐ

InDesign、イラレ、フォトショ(CS6 Win)の勉強中。。。(旧まとめいみブログ)

[未選択]
ExtendScript(CS6)で681字のUTF-8和文テキストファイルの読み込みに失敗する

いつも使ってるスクリプトがなんかあるテキストファイルだけうまく動かないなーってことがありまして、原因を調べてみたら記事タイトルのような真相だったのですが、CS6だけなのかなあ…



ExtendScriptでテキストファイルを読み込むスクリプトはたとえばこんな風に書きます。

var f=File("~/Desktop/あ.txt");
f.open("r");
var s=f.read();
f.close();
s;

これでテキストファイルのエンコードは自動判別してくれて、大抵の場合うまく読み込んでくれのでるのですが、
UTF-8(BOM無し)で681字程度の和文を読み込もうとすると失敗してしまうのです。
失敗ってのは具体的に言うと、Windowsではsが空文字列("")に、Macではおもいっきり文字化けします。

すべて2バイト文字で改行なしの文章で、1万字まで実験してみたところ、ダメだったのは681文字と682文字のときだけでした。ただし改行や半角文字が含まれると文字数は変わってきます。
f.encoding="UTF-8";
をopenする前に書いておけば正しく読めるようになります。



そもそも自動判別が上手くいかないことがあるというのは織り込んでおくべきことであって、BOM付きにするなり、encodingを指定するなりすればいいわけで、別にExtendScriptが(Adobeが)悪いと言いたいわけではありません。

CCがどうなってるのか気になるので試した方はぜひ教えてください。
↓681文字のテキスト

とかくに人の世は住みにくい。意地を通せば窮屈だ。情に棹させば流される。情に棹させば流される。智に働けば角が立つ。住みにくさが高じると、安い所へ引き越したくなる。山路を登りながら、こう考えた。山路を登りながら、こう考えた。意地を通せば窮屈だ。とかくに人の世は住みにくい。情に棹させば流される。意地を通せば窮屈だ。山路を登りながら、こう考えた。とかくに人の世は住みにくい。どこへ越しても住みにくいと悟った時、詩が生れて、画が出来る。意地を通せば窮屈だ。とかくに人の世は住みにくい。意地を通せば窮屈だ。山路を登りながら、こう考えた。智に働けば角が立つ。山路を登りながら、こう考えた。住みにくさが高じると、安い所へ引き越したくなる。山路を登りながら、こう考えた。どこへ越しても住みにくいと悟った時、詩が生れて、画が出来る。とかくに人の世は住みにくい。住みにくさが高じると、安い所へ引き越したくなる。情に棹させば流される。住みにくさが高じると、安い所へ引き越したくなる。とかくに人の世は住みにくい。情に棹させば流される。情に棹させば流される。どこへ越しても住みにくいと悟った時、詩が生れて、画が出来る。意地を通せば窮屈だ。住みにくさが高じると、安い所へ引き越したくなる。智に働けば角が立つ。山路を登りながら、こう考えた。情に棹させば流される。とかくに人の世は住みにくい。情に棹させば流される。智に働けば角が立つ。智に働けば角が立つ。意地を通せば窮屈だ。智に働けば角が立つ。とかくに人の世は住みにくい。どこへ越しても住みにくいと悟った時、詩が生れて、画が出来る。とかくに人の
PR

[イラレ]
イラレの配置画像用 変形パネルをつくったー


InDesignみたいに現在の変形値を取得したり変更したりできるタイプの変形パネルっぽいものを生成するIllustratorスクリプト(jsxbin)です。
たとえばこんなときに使えます。

・うっかりShift放して変形しちゃったけど縦横比を戻したい
・回転がかかった画像にさらにシアーをかけたい
・回転、シアーの角度を変更したい
・ある画像の変形値を別の画像にも適用したい

※リンク画像または埋め込み画像を選択して使用できます。たとえば「リンク画像を含むクリッピングマスク」を選択しても使用できません。リンク画像をダイレクト選択すれば使えます

※選択物が変更されたときに自動的にパネルの値が変わったりはしないので、いちいち「取得」ボタンを押さなきゃいけません。ある変形値を複数の画像に適用する場合などはかえって便利かも

※単位が表示されませんが、X,Yは%、回転・シアーは度(°)です。単位付き入力はできません


※「270°回転を270°とするか-90°とするか」というような細かい仕様はInDesignの変形パネルを真似してます

※リンク画像を埋め込み画像にするとX,Yのスケールが変わることがありますがイラレの仕様です

[InDesign]
ツイッターに書いた小ネタを振り返ってみる InDesignスクリプト編

超絶便利なスクリプトです。私はShift+Zという打ちやすいショートカットキーを登録して頻繁に使ってます。
CS5あたりでInDesignのDOMが変更されて、pageItemの親がページじゃなくスプレッドになったことで動かなくなってますが、少しの修正で動きます。

[InDesign]
ツイッターに書いた小ネタを振り返ってみる ExtendScript編

これESTKのインストールフォルダ内にあるjsxを眺めてて気づいたんですけど、JavaScript Tools Guideの23ページにもちゃんと書いてありました。
ScriptUIとかBridgeTalkに使うと便利そう。



少なくともCS6では、ScriptUIのListBoxはWindows8.1およびWindows10でまともに機能しません。ListBox使ったスクリプトを配布なさる方はご注意。

プロフィール

あるふぁ(仮)
InDesignで新聞組版のようなことをしてる人です。

InDesignスクリプトについて

つくったInDesignスクリプトのまとめ

twitter

5つの「く」

ハタハタのすばらしさをまとめました。