PHP Fckeditor上传文件(或图片)中文显示为乱码的解决方法

 

中文名乱码是因为:
FCKeditor使用UTF-8编码,
自己机子比如是Windows系统
文件名使用的是GBK编码,
在上传中需要,改下编码,从UTF-8到GBK

==>第一个思路,转码思路,要修改两个文件,第一个文件:
.\fckeditor\editor\filemanager\connectors\php\commands.php 文件

里面有一个 FileUpload 函数:

move_uploaded_file( $oFile['tmp_name'], $sFilePath ) ;
改为
move_uploaded_file( $oFile['tmp_name'], iconv("utf-8","gbk",$sFilePath) ) ;

----------

第二个文件:

.\fckeditor\editor\filemanager\connectors\php\util.php 文件

找到 ConvertToXmlAttribute 函数:

将:return ( utf8_encode( htmlspecialchars( $value ) ) ) ;

修改为:return iconv("GBK", "UTF-8", htmlspecialchars( $value ));

==>第二个思路,修改上传文件的名字:

需要修改如下:

在 .\fckeditor\editor\filemanager\connectors\php\commands.php 文件中

找到 FileUpload函数:将 $sFileName = $oFile['name'];

修改如下:

//--------------------------------------------------------------
   //修正上传文件中文乱码方法之二:(修改上传文件的名字)
   $sFileName = "sda.php";
   $sOriginalFileName = $sFileName;
   $sExtension = substr($sFileName, (strrpos($sFileName, '.') + 1));//找到扩展名
   $sExtension = strtolower($sExtension);
   $sFileName = date("YmdHis").rand(100, 200).".".$sExtension;
//--------------------------------------------------------------

个人认为第一种方法还是蛮好的!


PHP中完美解决fckeditor上传中文文件与新建中文目录出现乱码的问题

1、修正上传中文文件时文件名乱码问题
在文件fckeditor/editor/filemanager/connectors/php/commands.php中查找:
$sFileName = $oFile['name'] ;
在后面添加一行:
$sFileName = iconv("utf-8","gbk",$sFileName);

2、修正文件列表时中文文件名显示乱码问题
在文件fckeditor/editor/filemanager/connectors/php/util.php中查找:
return ( utf8_encode( htmlspecialchars( $value ) ) ) ;
修改为:
return iconv('','utf-8',htmlspecialchars( $value ));

3、修正新建中文文件夹时的文件夹名乱码问题
在文件fckeditor/editor/filemanager/connectors/php/commands.php中查找:
$sNewFolderName = $_GET['NewFolderName'] ;
在后面添加一行:
$sNewFolderName = iconv("utf-8","gbk",$sNewFolderName);

1、2步解决上传中文文件出现乱码的问题,2、3步解决新建中文目录出现乱码的问题,第2步很关键额,因为它关系到显示文件列表跟目录列表。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值