android の文字コードの怪

最近は、android 端末に PDF を突っ込んだり、漫画を自炊した画像ファイルを突っ込んだりすることが増えてきた。2、3人でプチプレゼンみたいなことになったときには、android 端末を見せながら……というのは便利だし、行き帰りで本を読むときにも、確かにこれは便利である。

しかし、前々からどうにも気になっていることがあった。他人と FAT32 フォーマットの USB メモリスティックや micro SD カードでファイルをやりとりするときに、ファイル名に日本語を使われることがあって、これを Linux 端末を経由して android に持ち込むと化け化けになってしまうのだ。

更に都合の悪いことに、僕は、

  • Microsoft Windows (xp, Vista, 7, 8)
  • Mac OS X
  • Debian GNU/Linux
  • android
という具合に、複数の OS を行ったり来たりしながら日常を過ごしている。こうなってくると、もう何が何だか分からない状況なのだ。

今までは、とりあえすファイル名を UTF-8 にしておけば、不都合が生じることはあまりなかった。しかし、android 端末では、これをやってもファイル名が化け化けになってしまう。もう何が何だか……という感じである。

ファイル名の文字コードを変更するユーティリティとしては、convmv という perl スクリプトがある。これであれこれ変えてみるのだが、どうしても android 上に持ち込むと化ける。何だろう……と思いつつ調べていると、メディアを Linux で mount するときに、オプションに "iocharset=utf8,shortname=mixed,utf8" を付けておくといける、という話を聞く。vfat で mount する際に試してみると、なるほど、android 上で作成した日本語ファイル名のファイルが、ちゃんと名前が化けることなく表示できる。まあそれはいいんだが、じゃあ化けるファイル名をどう変換したら読めるようになるんだ?

android 上で作成した日本語ファイル名のコードを調べようと、kcc -c とかやってみると、ASCII でござい、と返事が返ってくる。あー kcc は Unicode を正しく判別できないんだっけ、と "echo * | nkf --guess" などとやってみると、化けているものも表示できるものも、どちらも UTF-8 です、と言われる。うー。じゃあどうして片方は化けてもう片方は化けないのさ。

結局、Windows とか今回のような android とかの話になると、こういう問題が出てくるわけだ。奥村氏の blog でファイル名の文字コードに関するボヤキを発見してしまい、何とまあ面倒な話なのかねえ、と僕も軽く溜息をついたのであった。

2013/02/17(Sun) 19:01:30 | コンピュータ&インターネット
Tittle: Name:

Profile

T.T.Ueda
Tamotsu Thomas UEDA

茨城県水戸市生まれ。

横山大観がかつて学んだ小学校から、旧水戸城址にある中学、高校と進学。この頃から音楽を趣味とするようになる。大学は、学部→修士→博士の各課程に在籍し、某省傘下の研究所に就職、その2ヵ月後に学位を授与される(こういう経緯ですが最終学歴は博士課程「修了」です)。職場の隣の小学校で起こった惨劇は未だに心に深く傷を残している。

その後某自動車関連会社の研究法人で国の研究プロジェクトに参画、プロジェクト終了後は数年の彷徨を経て、某所で教育関連業務に従事。

New Entries

Comment

Categories

Archives(902)

Link

Search

Free

e-mail address:
e-mail address