PHP Pear::File_Archive 特定の文字が文字化けについて
PEARのPHPライブラリ「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まで置換されています。