>백엔드 개발 >PHP 튜토리얼 >uploadify 插件 使用thinkphp ajaxreturn 返回 unicode编码?

uploadify 插件 使用thinkphp ajaxreturn 返回 unicode编码?

WBOY
WBOY원래의
2016-06-06 20:21:521944검색

<code>    public function fileup(){
        $upload = new \Think\Upload();// 实例化上传类
        $upload->maxSize   =     1024*1024*2 ;// 设置附件上传大小
        $upload->exts      =     array('jpg', 'gif', 'png', 'jpeg', 'zip', 'xls', 'rar');// 设置附件上传类型
        $upload->rootPath  =     './Public/Uploads/'; // 设置附件上传根目录
        $upload->savePath  =     ''; // 设置附件上传(子)目录
        // 上传文件 
        $info   =   $upload->upload();
        if(!$info) {// 上传错误提示错误信息
            $this->ajaxReturn($upload->getError());
        }else{// 上传成功
            foreach ($info as $file) {
                $data['filename'] = $file['name'];
                $data['filepath'] = 'uploads/'.$file['savepath'].$file['savename'];
                $data['filesize'] = $file['size'];
                $this->ajaxReturn($data);
            }
        }
    }</code>

我在使用upploadify插件上传文件,如果上传失败,就返回错误信息,
但是$this->ajaxReturn($upload->getError());返回的是unicode编码?

\u4e0a\u4f20\u6587\u4ef6\u540e\u7f00\u4e0d\u5141\u8bb8

请问为什么会返回unicode编码吗?是因为什么呢?
不能直接显示汉字吗?

回复内容:

<code>    public function fileup(){
        $upload = new \Think\Upload();// 实例化上传类
        $upload->maxSize   =     1024*1024*2 ;// 设置附件上传大小
        $upload->exts      =     array('jpg', 'gif', 'png', 'jpeg', 'zip', 'xls', 'rar');// 设置附件上传类型
        $upload->rootPath  =     './Public/Uploads/'; // 设置附件上传根目录
        $upload->savePath  =     ''; // 设置附件上传(子)目录
        // 上传文件 
        $info   =   $upload->upload();
        if(!$info) {// 上传错误提示错误信息
            $this->ajaxReturn($upload->getError());
        }else{// 上传成功
            foreach ($info as $file) {
                $data['filename'] = $file['name'];
                $data['filepath'] = 'uploads/'.$file['savepath'].$file['savename'];
                $data['filesize'] = $file['size'];
                $this->ajaxReturn($data);
            }
        }
    }</code>

我在使用upploadify插件上传文件,如果上传失败,就返回错误信息,
但是$this->ajaxReturn($upload->getError());返回的是unicode编码?

\u4e0a\u4f20\u6587\u4ef6\u540e\u7f00\u4e0d\u5141\u8bb8

请问为什么会返回unicode编码吗?是因为什么呢?
不能直接显示汉字吗?

thinkphp的ajaxreturn 是直接将汉字json_encode 然后返回输出

你可以先将汉字urlencode再json_encode最后再urldecode就可以了

或者你直接将信息echo出来 不json_encode,汉字就不会被编码成unicode

并不一定要用$this->ajaxReturn 可以直接用 json_encode,加上第二个参数就好SON_UNESCAPED_UNICODE(这个参数你使用的版本应该支持)
还有个建议 成功与失败返回的数据格式一致 都是json
别外 怎么会写到foreach里面去$this->ajaxReturn

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.