[Python]tabulaが起動しない場合の対策。(ArgumentError) invalid byte sequence in Windows-31J

解決策

exeファイルを叩いて実行するのではなく、
コマンドプロンプトでRUBYOPTにUTF-8を設定する。

set RUBYOPT=-EUTF-8
tabula.exe

※Windowsの環境変数として設定することでも対処可能

事の発端

PDFの表をいい具合に変換してくれるというtabulaというツールを発見し試そうとしました。

Tabula: Extract Tables from PDFs
Tabula is a free tool for extracting data from PDF files into CSV and Excel files.

リンク先から最新のzipをダウンロードし、展開。
tabula.exeを実行したところ、
http://127.0.0.1:8080/
が開かれたのはいいのですが、以下のエラーが表示されました。

Internal Server Error (500)
Request Method: GET
Request URL: http://127.0.0.1:8080/
(ArgumentError) invalid byte sequence in Windows-31J
You're seeing this error because you use JRuby::Rack::ErrorApp::ShowStatus.

JRubyを使っていて、Windowsの標準文字コード(Windows-31J)で動こうとしてエラーとなっている模様

調べると、tabulaはUTF-8の文字コードを使用している模様

解決策を実行して解消しました。

コメント

タイトルとURLをコピーしました