SEEDS Creator's Blog

PHP Pear::File_Archive 特定の文字が文字化け

PHP Pear::File_Archive 特定の文字が文字化けについて

PEARPHPライブラリ「File_Archive」のバグを発見しました。

■現象 SJISのファイル名を圧縮すると特定の文字が文字化けてしまいます。

■例 ○対象ファイル 表-入稿データ.pdf

■原因 PHP「5C問題」

■対策パッチ /usr/share/pear/File/Archive/Reader.php

下記を修正 - $std = str_replace("\", "/", $path); + $std = preg_replace ("/\//" ,"/",$path);

○補足 ディレクトリの区切り文字を「\」(0x5c)から「/」に置き変える処理が、SJIS文字の2byte目に含まれる0x5cまで置換されています。