Ext form 提交乱码问题解决经过

这次做项目的时候遇到了一个棘手的问题:我用Ext的时候把中文放在了url里面了,提交上去java服务器端用

request.getParameter("XM")

立马出乱码。我用的服务器是tomcat,采用

new String(request.getParameter("XM").getBytes("iso-8859-1"),"utf-8")
就可以了。这是为什么呢?原因是ext提交的时候将url用utf-8编码了,但是在经过tomcat的时候又被用iso-8859-1给编码了,所以在java的服务器端要先用iso-8859-1将String解析成字节流,无论用什么编码只有字节流是唯一不变,而且可信的,然后将解析出来的字节流,再用utf-8的编码显示出来。
但是这个语句等到放到websphere上的时候又出现了乱码。原因就是url在经过websphere不是被iso-8859-1编码的,这就是websphere跟tomcat的不同点之一。
于是我把语句改成了
new String(request.getParameter("XM").getBytes("gbk"),"utf-8")
中文显示出来了,但是遇到奇数个字的词最后一个中文字总是没掉或者乱码。
于是我又采用了Ext的form,采用post提交,还是乱码。
最后请教了一下有这方面经验的人,都是说把项目utf-8化就好了,这样就可以不用转码,直接用
request.getParameter("XM")
就可以了,无论在tomcat和websphere上都ok了。于是我开始修改项目:
1、先把所有的页面,都用记事本打开
<% request.setCharacterEncoding( "utf-8" ); %>
<% @ page contentType = " text/html;charset=utf-8" %>



并另存为utf-8格式
2、所有用到的js,css,都用记事本打开,并另存为utf-8格式

3、java服务器端的代码凡是输出的response都设置成
response.setContentType("text/html; charset=utf-8");
4、如果有在web.xml里面使用过滤器的话,记得设置成utf-8
5、在调试页面的时候打开httpwatch(这是个很好用的调试工具,监视网页的数据流),观察还有什么地方不是charset="utf-8",改正之
这么一改,乱码消失了,不用转码了,直接获取,放哪里都好了。

总结一下经验:

1、如果有中文的地方不要放在url里面,最好做个form来提交
2、项目采用utf-8统一化
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
### 回答1: ext.NET是一个基于ASP.NET的开源框架,用于快速开发Web应用程序。如果在使用ext.NET时出现乱码问题,可能有以下几个原因和解决方法: 1. 字符编码不匹配:请确保所有相关的文件(如HTML、CSS和JavaScript文件)都使用相同的字符编码。一般情况下,使用UTF-8编码是比较常见和推荐的选择。可以在HTML页面的<head>标签中添加<meta charset="UTF-8">来指定字符编码。 2. 数据库字符编码设置不正确:如果应用程序涉及到数据库,需要确保数据库的字符编码设置和应用程序一致。例如,如果应用程序使用UTF-8编码,那么数据库的字符编码也应该设置为UTF-8。 3. 服务器配置问题:有时候,服务器的相关配置可能导致乱码问题。请检查服务器的配置文件(如web.config)是否正确地设置了字符编码参数。可以尝试设置<globalization requestEncoding="utf-8" responseEncoding="utf-8"/>来统一请求和响应的字符编码。 4. 引用问题:如果在ext.NET中使用了第三方库或插件,确保这些库或插件的文件也使用正确的字符编码,并且与ext.NET和应用程序的字符编码保持一致。 5. 代码问题乱码问题还可能源于代码中的错误或不完善的处理方式。在处理文本数据时,应该使用适当的编码方式,如UTF-8或Unicode。避免直接使用非ASCII字符或特殊字符,建议使用转义字符或编码的方式。 总之,ext.NET出现乱码问题可能由多个因素引起,需要针对具体情况逐一排查。确保字符编码的一致性,设置正确的服务器配置,检查数据库字符编码,避免引用问题以及正确处理文本数据都是解决乱码问题的一些常见方法。 ### 回答2: 当在ext.net中出现乱码时,可能有几个原因导致该问题。以下是一些可能的解决方法: 1. 字符编码设置有误:在ext.net的配置文件中,确保字符编码设置为与你的网页文档编码一致。常见的字符编码设置包括UTF-8和GBK。 2. 字体设置不正确:如果你在ext.net中使用了特定的字体,并且该字体在用户的电脑上不存在,那么可能会导致乱码。确保你使用的字体在用户电脑上是可用的。 3. 数据源编码错误:如果你的数据源中包含非ASCII字符,确保将其编码为与网页文档一致的编码格式。通常情况下,使用UTF-8编码是一个安全的选择。 4. 字体图标的问题:如果在ext.net中使用了字体图标(如Font Awesome),请确保你加载了适当的字体文件和CSS样式表。 5. 网页浏览器的支持问题:某些旧版本的网页浏览器对新的字符编码标准可能支持不完善。如果是这种情况,请确保你使用的是较新版本的浏览器。 总之,在处理ext.net中出现乱码问题时,你需要检查字符编码设置、字体设置、数据源编码、字体图标和浏览器支持等方面。根据具体情况进行调整和修复,以确保在ext.net中能够正确显示字符和文本内容。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值