星期六, 12月 22, 2012

另一個Owncloud中文亂碼問題

另一個Owncloud中文亂碼問題,坦白說應該是另一個IE中文亂碼問題。原因瀏覽器下載檔案時檔名是參照伺服器送出的header('Content-Disposition: attachment; filename=)這個標頭,而IE在這裡的檔名竟然不支援utf-8而且到了IE9都還沒修正。為了接濟這些可憐的IE只好修改 apps/files/download.php如下
(owncloud 4.5.6版已避開了這個錯誤,不需要進行以下修改)
紅字為新增部分

$ftype=OC_Filesystem::getMimeType( $filename );
header('Content-Type:'.$ftype);
header('Content-Disposition: attachment; filename="'.rawurlencode(basename($filename)).'"');
OCP\Response::disableCaching();
header('Content-Length: '.OC_Filesystem::filesize($filename));

2 則留言:

zhiyuan 提到...

你好。。。想问下你的owncloud有没有客户上载档案的问题呢?我上载后的软件变成了问号 "??.docx"不然就是".docx"。

从网页上载就还有档案的名字出现"文件.docx"但是也不能跟客户软件同步。就是给invalid character的错误。
你有没有相同的问题呢?

beck 提到...

很抱歉您所說的兩個問題我都沒遇到,Owncloud已經是UTF-8編碼,會出現??號情形應該是編碼轉換的問題,大部份都是MySQL沒有設定為UTF-8編碼,請您搜尋相關教學。