私はRubyを初めて使用し、WIN32OLEライブラリを使用してInDesignドキュメントからのテキスト抽出を自動化するスクリプト(Ruby 1.9.3、Windows XP)を作成しようとしています。
InDesignドキュメントには、ShreeLipiフォント(インドのデーバナーガリー文字)のテキストが含まれています。私のRubyスクリプトは次のとおりです。
'win32ole'が必要
app = WIN32OLE.new('InDesign.Application')
doc = app.activeDocument
text_frame = doc.textFrames(1)
text = text_frame.contents #=> "emhy ‘hmamOm§Mo ñ‘maH$ emhy {‘b‘ܶo C^mam"
puts text.encoding.name #=> "IBM437"
file = File.open('D:/try.txt','w')
file.puts text
file.close
この同じファイルを開いてメモ帳を使用してテキストを表示すると、次のように表示されます。
"emhy `hmamOmMo ¤`maH$ emhy {`b`šo C^mam"
なぜこれが起こっているのか理解できません。訂正を手伝ってください。Windows-1252エンコーディングとISO-8859-1を使用して解決しようとしましたが、解決策が見つかりませんでした。