extjs树,从后台取到数据,因为有中文,所以先在后编码,到前台解码,但是到前台在哪写解码

ianafollow 2015-07-10 09:34:18
extjs树,从后台取到数据,因为有中文,所以先在后编码,到前台解码,但是到前台在哪写解码,因为是用extjs中的treepanel,我的代码是
var left = new Ext.tree.TreePanel({
title:"Navigation",
region:"west",
collapsible:true,
width:200,
autoScroll:true,
//store:treestore,
split:true,
root: new Ext.tree.AsyncTreeNode({
text:'ExtJs',
id:'0',
expanded:true
}),
loader:new Ext.tree.TreeLoader({
dataUrl : 'getMenu.action',
success:function(response,option,success){
var treet = response.responseText;
alert(treet);
}
}),
listeners: {
click: function(node) {
//得到node的text属性
Ext.Msg.alert('消息', '你点击了: "' + node.attributes.text+"'");
}
}
});
在哪写解码的代码啊,我以为在success,但是不是啊,哪位大神知道啊
...全文
267 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
接收服务器端防止乱码的最好的方式就是将内容都转为16进制编码,如
var s="\x63\x6f\x64\x69\x6e\x67\x31\x32\x33\x2e\x6e\x65\x74\x31\x36\u8fdb\u5236\u7f16\u7801";
alert(s)
bluegone 2015-07-24
  • 打赏
  • 举报
回复
我是用的asp语言写的服务器端程序,这样实现的 <%@codepage="65001"%> <%Session.CodePage=65001%> response.charset = "utf-8"
zhan8863 2015-07-14
  • 打赏
  • 举报
回复
在服务器的返回response中设置字符集就可以了!!! 完全不用前台再转码!
引用 15 楼 ianafollow 的回复:
[quote=引用 10 楼 xuzuning 的回复:] 服务端程序发一个字符集声明的头就可以了
服务端发了字符集声明 了,还不行啊 response.setCharacterEncoding("UTF-8"); response.setContentType("text/html;charset=UTF-8"); response.setHeader("Content-Type","text/html;charset=UTF-8");[/quote]
ianafollow 2015-07-13
  • 打赏
  • 举报
回复
前台是utf-8,在action 中设置了response.setCharacterEncoding("UTF-8"); response.setContentType("text/html;charset=UTF-8"); response.setHeader("Content-Type","text/html;charset=UTF-8");,还是不行啊
chanel_1 2015-07-13
  • 打赏
  • 举报
回复
楼主前台的html页头声明是utf-8吗?后台呢?前后台编码要一致,数据库用的是什么呢?mysql默认是latin1,我是在配置文件里手动改成了utf-8,在后台有这么一句话:response.setContentType("text/html;charset=utf-8");
ianafollow 2015-07-13
  • 打赏
  • 举报
回复
引用 10 楼 xuzuning 的回复:
服务端程序发一个字符集声明的头就可以了
怎么写,在哪写啊
ianafollow 2015-07-13
  • 打赏
  • 举报
回复
引用 10 楼 xuzuning 的回复:
服务端程序发一个字符集声明的头就可以了
服务端发了字符集声明 了,还不行啊 response.setCharacterEncoding("UTF-8"); response.setContentType("text/html;charset=UTF-8"); response.setHeader("Content-Type","text/html;charset=UTF-8");
ianafollow 2015-07-13
  • 打赏
  • 举报
回复
引用 10 楼 xuzuning 的回复:
服务端程序发一个字符集声明的头就可以了
版主,在吗,
ianafollow 2015-07-10
  • 打赏
  • 举报
回复
有没有人会啊,版主你看看啊
xuzuning 2015-07-10
  • 打赏
  • 举报
回复
服务端程序发一个字符集声明的头就可以了
ianafollow 2015-07-10
  • 打赏
  • 举报
回复
这还有别的办法吗,其实是因为乱码的问题 ,从后台取出的数据中有中文,然后传到前台,就成了乱码
NANU-NANA 2015-07-10
  • 打赏
  • 举报
回复
我的想法是手动加载 var data = Ext.decode(response.responseText).data; for (...) { var child = node.createNode(...); node.appendChild(child); }
ianafollow 2015-07-10
  • 打赏
  • 举报
回复
引用 6 楼 u010087908 的回复:
success
var treeload = new Ext.tree.TreeLoader({ dataUrl : 'getMenu.action', success:function(response,option,success){ Ext.decode(response.responseText); } }) 这么写,没用啊
NANU-NANA 2015-07-10
  • 打赏
  • 举报
回复
success
ianafollow 2015-07-10
  • 打赏
  • 举报
回复
引用 4 楼 u010087908 的回复:
Ext.decode(response.responseText)
这句写在哪里啊
NANU-NANA 2015-07-10
  • 打赏
  • 举报
回复
Ext.decode(response.responseText)
ianafollow 2015-07-10
  • 打赏
  • 举报
回复
引用 2 楼 danica7773 的回复:
哪个告诉你有中文要编码的? 前、后台还有数据库统一编码就行了 如果非要编码,那我只能帮顶了,不好意思的说,从没有用过ext
在后台打印出来是对的,传到前台就乱码了,那你说该怎么做啊
打字员 2015-07-10
  • 打赏
  • 举报
回复
哪个告诉你有中文要编码的? 前、后台还有数据库统一编码就行了 如果非要编码,那我只能帮顶了,不好意思的说,从没有用过ext

87,988

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧