Win32なApacheでPATH_INFOがShift_JISになる
読了まで:約2分
なんか
Windows で
なんでも Shift_JIS
仕様なのかバグなのか分かりませんが、PATH_INFO
等がApache PATH_INFO 文字化け
具体的にはPATH_INFO
にPATH_INFO
がmod_rewrite
を
僕がPATH_INFO
まあ、PATH_INFO
が
環境変数 REQUEST_URI , SCRIPT_NAME を使う
REQUEST_URI
とSCRIPT_NAME
を
my ($request_uri,$script_name) =
( $ENV{'REQUEST_URI'} , $ENV{'SCRIPT_NAME'});
my $path_info = $request_uri;
$path_info =~ s!^$script_name!!;
$path_info =~ s/%( [[0-9A-Fa-f]] [[0-9A-Fa-f]] )/pack('H2', $1)/eg;
こんなmod_rewrite
なんかで
簡単な
my ($request_uri,$script_name,$script_filename) =
( $ENV{'REQUEST_URI'} , $ENV{'SCRIPT_NAME'} , $ENV{'SCRIPT_FILENAME'});
my @tmp_filename = split m{/},$script_filename;
my $filename = pop @tmp_filename;
my $path_info = $request_uri;
if ($path_info !~ m/$filename$/){
$script_name =~ s!/$filename$!!;
}
path_info =~ s!^$script_name!!;
$path_info =~ s/%( [[0-9A-Fa-f]] [[0-9A-Fa-f]] )/pack('H2', $1)/eg;
こんな
まとめ
この
PATH_INFO
に日本語 突っ込むのを やめる - Windows で
Apache 使うの やめる - Windows を
窓から 投げ捨てろ
ぐらいでしょうか。
2 に
おまけ
自作 Wiki の