日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java ckfinder中文_CKfinder中文乱码的解决.

發布時間:2023/12/20 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java ckfinder中文_CKfinder中文乱码的解决. 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最近在寫一個類似博客的系統,使用了ckeditor和ckfinder,但是發現ckfinder在上傳中文文件名的文件過程中會出現中文亂碼的情況.

于是百度google乎,發現大多數的解決辦法都是將文件名稱命名成時間.但可是可但是,我是一名地道的中國人啊,為啥不行讓我使用中文的文件名.

研究下ckfinder.

在core/connector/php/php5/CommandHandler/FileUpload.php內發現..大概53行左右.

if (!isset($uploadedFile['name'])) {

$this->_errorHandler->throwError(CKFINDER_CONNECTOR_ERROR_UPLOADED_INVALID);

}

$sUnsafeFileName = CKFinder_Connector_Utils_FileSystem::convertToFilesystemEncoding(CKFinder_Connector_Utils_Misc::mbBasename($uploadedFile['name']));

//這行是調用了CKFinder_Connector_Utils_FileSystem::convertToFilesystemEncoding方法,轉換了

//名稱,網上多數的方法是將這個名字變成日期命名.

$sFileName = CKFinder_Connector_Utils_FileSystem::secureFileName($sUnsafeFileName);

然后我試圖改變這里的文件編碼.

增加了$uploadedFile['name'] = iconv(“utf-8″,”gbk”, $uploadedFile['name']);

但是發現這樣會導致上傳的文件名稱是正確的,但是在ckfinder里面顯示的文件名稱是錯誤的.

于是乎去看這個convertToFilesystemEncoding方法,這個方法在,core\connector\php\php5\Utils\FileSystem.php中

404-427行,

public static function convertToConnectorEncoding($fileName)

{

$_config =& CKFinder_Connector_Core_Factory::getInstance("Core_Config");

$encoding = $_config->getFilesystemEncoding();

if (is_null($encoding) || strcasecmp($encoding, "UTF-8") == 0 || strcasecmp($encoding, "UTF8") == 0) {

return $fileName;

}

if (!function_exists("iconv")) {

if (strcasecmp($encoding, "ISO-8859-1") == 0 || strcasecmp($encoding, "ISO8859-1") == 0 || strcasecmp($encoding, "Latin1") == 0) {

return utf8_encode($fileName);

} else {

return $fileName;

}

}

$converted = @iconv($encoding, "UTF-8", $fileName);

if ($converted === false) {

return $fileName;

}

return $converted;

}

函數大概的意思是 ? 首先拿到配置文件里面配置的當前系統編碼.

如果設置的為utf8 那么直接輸出,如果設置的是ISO-8859-1,編碼后輸出,如果設置的是其他的編碼,那么通過iconv函數轉換后輸出.

打開配置文件,根目錄下的config.php.找到這個配置選項.大概在258行.將原始的utf-8改成gbk(簡體中文window7系統.),中文亂碼問題順利解決.

這個配置到底應該怎么配置.取決于你當前系統對中文文件名稱的編碼.默認的windows系統應該是gbk,如果是linux系統.在沒設置的情況下是utf8 ?也有可能設置成了gbk.簡單修改配置文件,

問題就能夠得到解決.

總結

以上是生活随笔為你收集整理的java ckfinder中文_CKfinder中文乱码的解决.的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。