【发布时间】:2013-05-29 22:38:47
【问题描述】:
我已将我的数据库排序规则设置为utf8_unicode_ci,并在我的 CakePHP 数据库设置中。
class DATABASE_CONFIG {
public $default = array(
'datasource' => 'Database/Mysql',
'persistent' => false,
'host' => 'xxx',
'login' => 'xxx',
'password' => 'xxx',
'database' => 'thisisdatabase',
'prefix' => '',
'encoding' => 'utf8',
);
}
我这样设置下载二进制文件:
$this->viewClass = 'Media';
$params = array(
'id' => $download_list[0],
'download' => true,
'extension' => $download_file_ext,
'path' => $fileDownloadPath . DS,
);
$this->set($params);
当用户上传文件时,文件名将在数据库中记录为unicode-utf8。当我通过 Chrome、FF 下载时,结果很好(日文名称仍然完好无损)。但是当我通过 IE 下载时,文件名是垃圾。虽然文件本身很好(我可以打开它等)。
有人知道怎么解决吗?
【问题讨论】:
-
您是否在 http 响应中设置了适当的 utf 标头?整个渲染管道必须保持一致。
-
@MarcB 你能解释一下怎么做吗?我不知道标题的东西。谢谢
-
在您的数据库配置中,我认为您也可以指定排序规则。如果我没记错的话,如果你使用 utf8 编码,它默认为 utf8_general_ci 排序规则。尝试这样做并保存另一个文件,看看它是否有效。
标签: php internet-explorer cakephp unicode download