hero_picture

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

2014/11/25

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まで置換されています。