2007年12月17日(月) [過去の今日]
#1 日本語ファイル名の入ったアーカイブが文字化けして困る
前々からWindowsユーザーな人にもらったzipファイルを解凍すると、なぜかShift_JISのコードが化けるらしくてファイル名をコンバートできなかったりしてた。しょうがないのでPerlでArchive::ZipとEncode、Encode::Guessを使ってもげもげして使ってたり。
それを人に見せたところ、実に便利という感想を頂いた。どうやらUNIX系環境はEUC-JPからUTF-8へロケールが移り変わっているため、EUC-JPとUTF-8のファイルが社内で混在してて困ってたりするらしい。ついでにtarもヨロとか言われたり。いやまあArchive::Tarに入れ換えてメソッド名調整するだけだけどさ。
というわけで俺が使ってるunzip.plとuntar.plをここに公開しておく。
CPANにはArchive::*はいっぱいあるし、ファイルタイプはFile::MMagicを使うとすぐわかるので、1つのスクリプトで何でも解凍できるようなものを作るのもそう難しくないと思う。
「untar.plもヨロ」と言った某氏には社内教育がてらにそのようなスクリプトを書かせてみるのもいいんでないかと進言しておこう。
ちなみにこのスクリプト、あんまり見知らぬ人からもらったファイルを解凍するのには使わない方がいいと思う。
(@118)