| ブログトップ | PHP関連 |

ZipArchiveのextractToで日本語ファイルが解凍できない【PHP】

この記事は1年以上前の記事のため、内容が古い可能性があります。

zip圧縮自体はうまくいってるのだけれど、ZipArchiveのextractToで解凍すると日本語部分が消えてしまう問題が発生しました。

たとえばファイル名が

サンプル-1.jpg

という場合、解凍すると

-1.jpg

となってしまいます。

調べたところ、ZipArchiveはPHPで設定されているlocaleに依存するとのこと。

ZipArchiveで日本語ファイル名を扱えない場合があって困った話 - Qiita

ということであれば、同じプログラム内で事前にlocaleの設定を変えればいいんじゃね?と思い、ZipArchiveをインスタンス化する前に、下記を追記しました。


if (setlocale(LC_ALL, 'ja_JP.UTF-8') === false) {
error_log('Locale not found: ja_JP.UTF-8');
exit(1);
}

参考:PHPのロケールに関するまとめ - hnwの日記

日本語ファイルでもうまく解凍できるようになりました!

日々の生活にhappyをプラスする|ハピタス

このエントリーをはてなブックマークに追加

LINEで送る

nandani | 2014年12月19日 | コメント(0) | トラックバック(0) | PHP関連

トラックバック

トラックバックURL

コメントする

※メールアドレスが公開されることはありません。

名前 *
メール*
URL
Copyright(c) 2010 - 2024 ダリの雑記