wordpressアップロード添付ファイル中国語ファイル名乱符号解決方法(for Windows)

6650 ワード

私の開発はMac OS Xの下で行われていますが、wordpressはUTF-8コードで、新しいバージョン(私は3.0.3を使っています)のwordpressに中国語の添付ファイルをアップロードすると、正常に保存し、表示し、ダウンロードすることができます.
しかし、サイトをWindows XPの中国語版に配置すると、アップロードされた添付ファイルはサーバーのファイル名が文字化けしているのに気づき、URLは正常で、オペレーティングシステムの符号化の問題であることを説明し、windowsの中国語版の符号化はGBKのようだ(以前Windowsで開発したときに出力されたシステム符号化はGBKのようで、あまり確定していないので、興味のある人は自分でWinでテストすることができる).ソリューション:
 
1.Windows XPシステムにwordpressを配備しない場合は、Windows XP English versionを交換してください.
2.Windows XP中国語版にwordpressを配備しなければならない場合は、次のコードを変更します.
//wp-admin/includes/file.php、3.0.3を例に:

  
    
function wp_handle_upload( & $file , $overrides = false , $time = null ) {
// ....
// Move the file to the uploads dir
//$new_file = $uploads['path'] . "/$filename";
//

$new_file = $uploads [ ' path ' ] . " / " . iconv ( " UTF-8 " , " GB2312 " , $filename );

// ...

//return apply_filters( 'wp_handle_upload', array( 'file' => $new_file, 'url' => $url, 'type' => $type ), 'upload' );
//

return apply_filters( ' wp_handle_upload ' , array ( ' file ' => $uploads [ ' path ' ] . " / $filename " , ' url ' => $url , ' type ' => $type ) , ' upload ' );

その中のiconv(「UTF-8」,「GB 2312」,$filename);「GBK」コードも使用できます.