社区
Web 开发
帖子详情
【重金悬赏】ajax返回页面乱码问题?
zeq258
2006-07-09 12:00:08
根据页面提交的条件,到后台数据库查到值
查找结果是中文,在后台打印出来没有问题,
可是,把这些中文信息,组织成 xml 返回到页面,
在页面得到的,都是 “???????????” ,
那位兄弟帮帮忙,急呀!
分不够,我可以再加!
说到做到!
...全文
468
6
打赏
收藏
【重金悬赏】ajax返回页面乱码问题?
根据页面提交的条件,到后台数据库查到值 查找结果是中文,在后台打印出来没有问题, 可是,把这些中文信息,组织成 xml 返回到页面, 在页面得到的,都是 “???????????” , 那位兄弟帮帮忙,急呀! 分不够,我可以再加! 说到做到!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zeq258
2006-07-11
打赏
举报
回复
问题还是自己搞定了,
不过,还是谢谢大家的关注!
wangxhere
2006-07-09
打赏
举报
回复
应该是编码问题,同意上面说的,同时也可以看看客户端浏览器编码设置
IceCraft
2006-07-09
打赏
举报
回复
这是编码问题,应该配合你的系统的整体架构一起解决。
要做到不因用户浏览器语言或编码的不同而导致出现各种编码问题,你的系统应该做到国际化。
数据库应该使用UTF-8编码,前台jsp页面也使用UTF-8,同时增加一个编码过滤器(Spring框架提供了一个)。配置了这些后,用户录入和显示数据应该都没有问题了。
来看你的这个问题。如果你的ajax使用的是DWR框架,只需要在上述的编码过滤器上增加一个过滤路径“/dwr/*”,在使用Spring的那个编码过滤器的情况下,web.xml就有:
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/dwr/*</url-pattern>
</filter-mapping>
如此,页面中使用DWR Ajax查出来的东西就不会有乱码了。
另一种情况,你自己编写低层的javascript来自己实现ajax功能,那么应该要使用一个比如servlet来输出xml。如果使用了编码过滤器,那么也是类似的配置,让过滤器来过滤servlet的请求路径。
如果楼主没有如上所说的国际化、编码过滤器、DWR这些东西,但是是使用servlet来输出xml并且是自己写javascript来实现ajax。那么在你的servlet中输出xml的部分应该类似如下:
response.setContentType("text/xml");
response.setCharacterEncoding("UTF-8");
PrintWriter out = response.getWriter();
out.println(xml);
out.flush();
out.close();
这里的UTF-8是在你的页面编码也是UTF-8时就会正常显示了,如果你的页面不是UTF-8,那么把这里换成对应的比如GBK、GB2312等试试,直到页面显示正常即可。
dlxu
2006-07-09
打赏
举报
回复
页面编码是不是有问题?在页面上用System.out.println打出来看看呢。或者是Javascript也有编码?
zeq258
2006-07-09
打赏
举报
回复
谢谢楼上几位的答复,
但是,问题还没有解决,
能留下你们的联系方式吗,咱们联系,!
我的 qq: 49137296
TinyJimmy
2006-07-09
打赏
举报
回复
数据库编码要从数据库、应用平台以及输出输入数据几个方面下手。任何一个环节有问题都会造成乱码。
读取:数据库=>VM内存=>浏览器
VM读取的数据库的内容需要和数据库的编码要能够匹配得上,通过System.out.println(...)可以判断。如果打印得内容是乱码,恭喜你,找到问题了。从内存到浏览器得输出无非就是设置response输出的encoding,如果使用JSP,在JSP上也需要设置相关的Encoding即可。
写入:数据库=>VM内存=>浏览器
如果读取数据不乱码,写入就比较简单了。读取浏览器写入数据需要使用编码读入,也可以设置平台的一些设置,保证读入的数据正常(还是System.out.println),再从内存写入。
使用JDBC、连接池或者使用EJB、Hibernate等不同方法写入的配置有些不一样,只要抓住一点,搞准数据库编码和VM编码,做好配置由平台转换或自己转换皆可
解决:后台传值给
ajax
的中文都变成问号?
2019独角兽企业
重金
招聘Python工程师标准>>> ...
DWG文件打开
乱码
怎么办?
2019独角兽企业
重金
招聘Python工程师标准>>> ...
HttpUrlConnection发送post请求汉字出现
乱码
的一个解决方法及其原因
2019独角兽企业
重金
招聘Python工程师标准>>> ...
js处理
ajax
返回
的list类型的json数据
2019独角兽企业
重金
招聘Python工程师标准>>> ...
ajax
请求重定向后
页面
不跳转
问题
(使用拦截器)
2019独角兽企业
重金
招聘Python工程师标准>>> ...
Web 开发
81,094
社区成员
341,717
社区内容
发帖
与我相关
我的任务
Web 开发
Java Web 开发
复制链接
扫一扫
分享
社区描述
Java Web 开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章