OS X

研究室のMac人口が急増。前作ったバックアップアプリはMacでも動くはずなので使ってもらってみたがエラーが出た。

そもそもREADMEをテキストエディタに開かせると文字コードが認識できないため表示できない。UTF-8に対応してない?ターミナルでcatしてみたら正常に表示できたので対応していないわけではないようだがいったいどういうわけだか。そのターミナルでもlessだと日本語が表示できず環境変数LANGがどうなっているのかとechoで表示させてみると設定されていなかった。bashを使っているようだったので適当に'export LANG=ja_JP.UTF-8'としてみるとうまくいった。日本語が既定に設定されているはずなのにこれはどうかと思う。

で肝心のエラーの内容だがasciiをunicodeに変換できないとかでpythonソース中で'u'をつけてunicode文字列にしている文字列をすべて'u'をとってただの文字列にしてやるとエラーが出ず正常に動作した。おそらくファイルの文字コード判別に失敗したかそもそも自動判別しない設定になっているかで純粋ASCIIで読もうとしたのだろう。PEP*1-0263で推奨されている方法で文字コードを宣言しているので文字コード判別に失敗するのは考えにくいのだが、実際うまく認識されていないので何とかすべき。

*1:Python Enhancement Proposal