新手求助:使用 ThinkPhp 遇到如下问题。

2016-08-07 23:06:29 +08:00
 Raul7
使用 ajaxReturn 方法将提示信息返回到前台打印到页面。但是提示信息全部被 Unicode 编码。怎么解决??
3075 次点击
所在节点    PHP
13 条回复
kkk330
2016-08-08 00:15:22 +08:00
首先应该是 utf8 编码的文字,不是 Unicode ,然后复制那段 utf8 到 console ,粘贴,回车,记得用引号包起来; 另外好像 network 里面的 response 可以直接看,记不清了
cevincheung
2016-08-08 06:39:49 +08:00
js 直接反解 JSON 输出的是汉字。莫纠结。
likezun
2016-08-08 08:39:52 +08:00
珍爱生命,远离 Thinkphp
yao978318542
2016-08-08 09:23:38 +08:00
你是输出到浏览器的控制台还是直接页面打印的啊 贴代码啊!
Raul7
2016-08-08 09:27:50 +08:00
@yao978318542 @cevincheung @kkk330 打印提示信息到页面的代码如下:
if (false) {

$this->ajaxReturn ( array ('nr' => '验证码错误!','sf' => 0 ) );
} else {
$addaccount = M ( 'user' )->where ( array (UE_account => $data_P ['dfzh']) )->find ();

if (!$addaccount) {
$this->ajaxReturn ( array ('nr' => '推荐人不存在!','sf' => 0 ) );
}else {
$this->ajaxReturn ('推荐人可用!');
//$this->ajaxReturn ($addaccount['ue_theme']);
}
}
总感觉是 ajaxReturn 方法有点问题。

提示信息全部在页面上被 Unicode 编码。
yao978318542
2016-08-08 09:31:39 +08:00
ajaxReturn 这个方法呢
cevincheung
2016-08-08 09:32:46 +08:00
@Raul7
ajaxReturn 对应的是 AJAX 请求。你直接页面请求肯定会是一堆 unicode 码的- -#
allanxiong
2016-08-08 10:15:16 +08:00
Raul7
2016-08-08 10:33:27 +08:00
@yao978318542 @cevincheung ajaxReturn 方法的代码:
protected function ajaxReturn($data,$type='',$json_option=0) {
if(empty($type)) $type = C('DEFAULT_AJAX_RETURN');
switch (strtoupper($type)){
case 'JSON' :
// 返回 JSON 数据格式到客户端 包含状态信息
header('Content-Type:application/json; charset=utf-8');
exit(json_encode($data,$json_option));
case 'XML' :
// 返回 xml 格式数据
header('Content-Type:text/xml; charset=utf-8');
exit(xml_encode($data));
case 'JSONP':
// 返回 JSON 数据格式到客户端 包含状态信息
header('Content-Type:application/json; charset=utf-8');
$handler = isset($_GET[C('VAR_JSONP_HANDLER')]) ? $_GET[C('VAR_JSONP_HANDLER')] : C('DEFAULT_JSONP_HANDLER');
exit($handler.'('.json_encode($data,$json_option).');');
case 'EVAL' :
// 返回可执行的 js 脚本
header('Content-Type:text/html; charset=utf-8');
exit($data);
default :
// 用于扩展其他返回格式数据
Hook::listen('ajax_return',$data);
}
}

在网上查询,好像很多都说是跟 json_encode 有关系。
wkan
2016-08-08 10:48:16 +08:00
qiayue
2016-08-08 10:49:35 +08:00
没事,你肉眼看是 unicode ,但是你直接 js 使用会自动变成中文。
yao978318542
2016-08-08 15:37:49 +08:00
我的天 你直接修改 添加一个 html 格式的不就 ok 了
y10n
2016-08-08 16:47:57 +08:00

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/297755

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX