ちくちく日記

DTP系備忘録。真面目にやってます。

AppleScriptでRuby(半角カナ)

AppleScriptからテキストファイルと、スクリプトファイルを指定して、
do shell script "ruby -Ks" & Script_Text_Path & " " & Quoted_Text_Item_List
でテキストファイルをRubyで処理する、というのをやっている。

(なんでわざわざAppleScriptかますのかというと、
テキストファイルをスクリプトにドロップ

テキストをrubyでタグ付け処理

タグ付けしたテキストをInDesignに流し込み
っていう処理を連携してやろうとしているからです)

処理しようとしているテキストファイルはShift-JISで入力されたものなので、テキスト変換するRubyの方もShift-JISベースで動く。
処理した結果をrubyからprintで返すと、AppleScriptの返り値になる…のだけど、rubyからShift-JISのままダイレクトに返してしまうと、文字化けしてしまってうまく受け取れない。

UTF-8に変換してから渡してやれば文字化けはしないだろうと思ってやってみたのだけど、一気に変換しようとするとIllegalSequenceでエラーになったりする。部分的に変換してから、処理すれば大丈夫か?などと試行錯誤。

…で。そのUTF-8への変換テストなどを繰り返しているうちに気がついたのだけど、Shift-JISで入力された半角カナって、rubyUTF-8に変換すると勝手に全角カナに変換されるんですな。
(ちなみに私がやった変換のやり方は
require "Kconv"
Kconv.toutf8(text_line)##UTF8にする)

これに気がついた時、なんとも微妙な気持ちになりました。
なんでかというと、やろうとしていたテキスト処理の中には「半角カナで入力されたのを全角カナにする」というのも含まれてまして…。

なんだか、昔、落語の枕に聞いた小咄の

「ある雪の夜、男が尿意をもよおして目が覚めた。
外にある厠へ行こうと、引き戸に手をかけますが、これが凍ってしまってうんともすんとも動かない。
しかたなく、引き戸にお湯をかけて溶かそうかと思った時、ふとひらめいた。
『なにもお湯をもってこなくてもいいじゃないか…』
じょ、じょ、じょ、じょ、と事を終え、さぁ引き戸も開いた。そこで男は考えた。
『はて、俺は何をしに外にでたんだっけ?』」

…ってのを思い出しました…(この気持ちって伝わりにくいか…)。

とりあえず、テキストは一旦テキストファイルに書き出してから、読み込んでつかう事にしました。変換の途中で文字が化けたりするのも怖いし。