2004年04月26日

添付ファイルの文字化け対策

上記の問題結構重要なので対策してみました。

変更はplugin/attach.inc.phpに以下のパッチを当てるだけです。

*** attach.inc.php.old	Sun Apr 25 23:11:10 2004
--- attach.inc.php	Sun Apr 25 23:13:18 2004
***************
*** 622,628 ****
  		$this->putstatus();
  		
  		// for japanese (???)
! 		$filename = htmlspecialchars(mb_convert_encoding($this->file,'SJIS','auto'));
  		
  		ini_set('default_charset','');
  		mb_http_output('pass');
--- 622,632 ----
  		$this->putstatus();
  		
  		// for japanese (???)
! 		if(ereg("MSIE",$_SERVER["HTTP_USER_AGENT"])){
! 			$filename = htmlspecialchars(mb_convert_encoding($this->file,'SJIS','auto'));
! 		}else{
! 			$filename = htmlspecialchars(mb_convert_encoding($this->file,'UTF-8','auto'));
! 		}
  		
  		ini_set('default_charset','');
  		mb_http_output('pass');
まぁ、要するにIEにだけSHIFT-JISでファイル名渡してやればいいので、「$filename =」で始まる行を、ブラウザ判定付き構文にするだけで対策できます。

なおパッチのあて方は以下の通り

$ cd Pukiwikiがインストールされているディレクトリ/plugin
$ vi attach.diff
(上記のパッチを貼り付ける)
$ patch < attach.diff
$ rm attach.diff
追記、 Posted by Takuchan at 2004年04月26日 10:38 | トラックバック(0)

おおー、素晴らしい。某gfwikiにも適用してみました。

Posted by: ィィ at 2004年04月26日 12:47

ありゃ、お知らせに行くまえにみっかりましたか(笑)
あちこちで使ってる都合いろいろハックしてますので、こんなので良ければいくらでも。

Posted by: Takuchan at 2004年04月26日 15:13