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を例に:
その中のiconv(「UTF-8」,「GB 2312」,$filename);「GBK」コードも使用できます.
しかし、サイトを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」コードも使用できます.