`
peizhe1232
  • 浏览: 70793 次
文章分类
社区版块
存档分类
最新评论

ERP,网站开发之后台struts2乱码解决总结大全

阅读更多

这两天,终于开始了我入软件开发的第一个网站。。。总体来说,还算是比较顺利的,呵呵,不过最后还是出现了一点小插曲,终于遇见了我最“期待”的乱码问题,乱码啊,乱码啊,你真是我这样小菜鸟级地上帝啊。。。

现在开始说说我遇见的乱码情况,我的总体框架是前台界面一个表单,然后提交信息到后台的action里面,然后用在调用方法把数据提交到数据库里面。。。可惜一切都不像我想的那么完美,最后在表单提交到action里面的时候还是出现了乱码。。。愁啊。。。但是由于解决了一个暑假的乱码经验,也没以前那么感觉恐惧了。。。想着利用以前的方法一定可以解决,可是最后解决了一整天的时间,以前的方法几乎都用过了。。最后还是没有解决。。。

我以前的自认为是杀手锏的方法:1.在表单页面头部设置字符编码为utf-8
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>


然后在设置页面请求和回应的编码:

<%request.setCharacterEncoding("utf-8");

response.setCharacterEncoding("utf-8"); %>

最后再再action里面写上:

ServletActionContext.getRequest().setCharacterEncoding("utf-8");
ServletActionContext.getResponse().setCharacterEncoding("utf-8");

设置完这些以为完事大吉了。。。可是最后提交还是乱码,乱码啊。。乱码。。没办法,继续想办法。。最后想起来了以前曾经用过的传说中的什么struts2国际化问题,在struts.xml前面加上这么一句:
<constant name="struts.i18n.encoding" value="utf-8" />
哎,咱也不管这是什么多大的国际化。。。心想着只要能解决咱的问题就OK了。。。。课时大失所望啊。。还国际化,真没见其什么效果。。。

乱码啊,,乱码,你把我搞得头都大了。。。没办法,继续解决。。去网上查查吧。。。最后实在没办法了,还是用一下我最讨厌的过滤器试试吧。。

具体过程:

1.编写过滤器类:
package org.RN.util;

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

public class Encoding implements Filter {
@SuppressWarnings("unused")
private FilterConfig config=null;
String encoding=null;
public void destroy() {
this.encoding=null;
this.config=null;

}

public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
if(encoding!=null)
request.setCharacterEncoding(encoding);
chain.doFilter(request, response);

}

public void init(FilterConfig arg0) throws ServletException {
this.config=arg0;
this.encoding=arg0.getInitParameter("encoding");

}

}

2.在web.xml配置
<filter>
<description>缓存过滤</description>
<filter-name>Encoding </filter-name>
<filter-class>
filter.Encoding
</filter-class>
</filter>
<filter-mapping>
<filter-name>Encoding </filter-name>
<url-pattern>*</url-pattern>
</filter-mapping></filter>
写完这些,骄傲的以为终于万事大吉了,可是可是可是他竟然还是乱码,我没办法了,我以前的那点解决乱码的老店都拿出来了,没办法了,心想着这回死定了,这个时候多亏了好兄弟兼职团队伙伴小金金的鼓励啊。。就需网上淘金,查啊查,论坛发帖啊:

以下是我发帖及回帖的一些情况

1楼:我写了一个表单。。表单的数据提交到struts2的action里面。。。然后由action提交到数据库。。可是数据到了数据库就是乱码了。。。。我用的数据库是sqlserver。。。高手指点啊。。。。尽量相信点。。。。。表单界面也设置了:<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>和<%request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8"); %>

action 里面也设置了 ServletActionContext.getRequest().setCharacterEncoding("utf-8");
ServletActionContext.getResponse().setCharacterEncoding("utf-8");


2楼:数据库编码 看看吧


3楼:说详细点。。。怎么设置sqlserver的字符编码啊、、、我不会。。。没百度出来、、、


4楼:jdbc:mysql://localhost:3306/android_stat?useUnicode=true&characterEncoding=utf-8
在连接数据库的时候加上 ?useUnicode=true&characterEncoding=utf-8


5楼:加上那个。。。"jdbc:sqlserver://localhost:1433; DatabaseName=RuiNiInfoDb?useUnicode=true&characterEncoding=utf-8";
数据库就连不上了。。。
无法打开登录所请求的数据库 "RuiNiInfoDb?useUnicode=true&characterEncoding=utf-8"。登录失败。


6楼:怎么可能呢,实在不行写一个过滤器,应该能搞定的。


7楼:满足以下两点,不会有乱码的存在的。
1,程序文件,jsp文件是utf-8编码的,jsp文件的头摇设置utf-8编码类型
2,数据库设置成utf-8
你看下你的数据库编码设置的是什么。如果网页是utf-8 数据库是gb2312 也有可能会乱码、在数据库上右键属性查看。

8楼;sqlserver设置数据库编码

9楼:一般ssh整合的时候都会在web.xml里面配置一个字符过滤的。
<!-- 转译字符编码 -->

Java code <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>
10楼:恩楼上说的很对,就是数据库的问题,解答如下:第一种办法:先选中出错的数据库→选中以后右键点击属性会弹出数据库属性 对话框→选中数据库属性对话框中的选项→把选项中的排序规则设置成:Chinese_PRC_90_CI_AS→最后点击确定即可。(注意:在选择数据库属性的时候必须确保你所修改的数据库未被使用才可以修改否则会失败的)第二种办法:首先打开你的sql查询分析器(新建查询),然后输入以下代码执行即 可:ALTER DATABASE 数据库名 COLLATE Chinese_PRC_90_CI_AS例如: ALTER DATABASE 9NPC COLLATE Chinese_PRC_CI_AIALTER DATABASE AutoUpgrade COLLATE Chinese_PRC_CI_AI解析原因:出现以上情况主要是因为数据库属性的排序规则设置不正确,在Microsoft SQL Server 2005 中,字符串的物理存储由排序规则控制。排序规则指定表示每个字符的位模式以及存储和比较字符所使用的规则。排序规则名称由两部份构成,前半部份是指本排序规则所支持的字符集。如:  Chinese_PRC_90_CI_AS前半部份:指UNICODE字符集,Chinese_PRC_指针对大陆简体字UNICODE的排序规则。排序规则的后半部份即后缀 含义:   _BIN 二进制排序   _CI(CS) 是否区分大小写,CI不区分,CS区分  _AI(AS) 是否区分重音,AI不区分,AS区分     _KI(KS) 是否区分假名类型&defKI不区分,KS区分 _WI(WS) 是否区分宽度 WI不区分,WS区分 区分大小写:如果想让比较将大写字母和小写字母视为不等,请选择该选项。区分重音:如果想让比较将重音和非重音字母视为不等,请选择该选项。如果选择该选项,比较还将重音不同的字母视为不等。区分假名:如果想让比较将片假名和平假名日语音节视为不等,请选择该选项。区分宽度:如果想让比较将半角字符和全角字符视为不等,请选择该选项。这个是百度找的,sqlserver2005的解决办法,怎么会找不到呢。。。
11楼:sqlserver 数据库的编码问题。


哎,可能是我说错了。。。可惜,回答的都是关于数据库的问题。。。并且很多人都是一些废话。。。哎,没办法。。继续想办法发。。。

哈哈,运气不错,遇到一个女程序员:教给我一种新的解决乱码的方法:

author=new String(author.getBytes("iso8859-1"),"utf-8");

content=new String(content.getBytes("iso8859-1"),"utf-8");

安说这也不是什么新方法。。。可是他惯用啊、、、、呵呵。。。还真把乱码给解决了、、、、

按着这个方法。。。成功解决了两个类似的乱码问题,课时当解决第三个类似的乱码问题时,这种方法就失效了。。。。

仔细分析了一下,很可能这个表单里面包括文件上传的问题:
<form action="NewAddAction"method="post" name="form"
enctype="multipart/form-data">

恩,就是这里的问题。。反复试验了一下,去掉以上所有解决乱码的方法就可以成功解决这里的乱码问题。。。哎,谁叫咱是菜鸟来着。。。只能反复的试验。。。这里面为什么这样用,我还真不知道这里面的原理。。。哎,菜鸟的悲哀啊


好了。。。乱码解决了,这篇文章页应该包括了大部分的解决乱码的方法把。。。

欢迎大家参考,拍砖,转载请注明出处

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    erp-master(easyUI+struts2+spring+hibernate)

    easyUI+struts2+spring+hibernate

    ERP开源项目 Hibernate+Struts+Spring

    一款非常不错的Erp开源项目。。功能比较强大!! 不下是浪费资源 Hibernate + struts + Spring 三层架构工程。。一款非常不错的Erp开源项目。。功能比较强大!!一款非常不错的Erp开源项目。。功能比较强大!!

    ERP开发总结

    ERP-ERP开发总结

    Struts+hibernate+Spring ERP系统

    这是一个用hibernate Struts Spring开发的典型案例,是学习开发SSH最好的典型

    gongyinglian.rar_ERP_java ERP项目_struts2 erp_发票_销售

    供应链描述的是一个类似ERP的项目,用spring、hibernate、struts2整合的java项目

    ERP用友开发文档

    ERP用友开发文档 ERP用友开发文档 ERP用友开发文档 ERP用友开发文档

    ERP管理系统开发教程Access版

    第1课:初识Access与模块化开发_转.mp4。第2课:数据库简单操作之支持库_转.mp4。第3课:数据库简单操作之SQL语句_转.mp4。第4课:实战简易通讯录_转.mp4。第5课:ERP开发之界面概述_转.mp4。第6课:工具条 状态条...

    Java开发的灵活稳定的企业级ERP系统源码.zip

    Java开发的灵活稳定的企业级ERP系统源码 Java开发的灵活稳定的企业级ERP系统源码 Java开发的灵活稳定的企业级ERP系统源码 Java开发的灵活稳定的企业级ERP系统源码 Java开发的灵活稳定的企业级ERP系统源码 ...

    易飞开发文档(ERP开发)

    以前工作的地方售后公司发给我的,看了看很实用,自己没时间学习这个开发,拿出来分享,对想学习易飞ERP开发的同学们,会有很大帮助。

    ERP系统开发框架(Webform+Sqlserver)

    案例介绍:曾经用来开发过企业官网,B2C电子商城,企业OA管理、CRM客户关系管理系统、ERP外贸生产系统等,支持流程自定义,页面自定义,数据表操作等,用户只需简单的创建自己想要的模型就可以随心所欲的释放系统的...

    一套完整的ERP系统开发资料大全

    ERP系统文档资料大全包括了系统的实现流程文档和解决方案,里面有word和ppt两种文档,这些文档已经浓缩了ERP系统开发的精华,掌握了它对你开发ERP系统有超级大的帮助哦。。。

    ERP工作日记,经验总结,以及开发思路

    ERP ERP经验 ERP日记 ERP开发思路ERP ERP经验 ERP日记 ERP开发思路ERP ERP经验 ERP日记 ERP开发思路ERP ERP经验 ERP日记 ERP开发思路ERP ERP经验 ERP日记 ERP开发思路ERP ERP经验 ERP日记 ERP开发思路

    泛微OA与外部系统ERP集成开发视频教程

    泛微OA流程开发,ecology开发,与外部ERP系统集成开发

    ERP软件开发实训教程

    《ERP软件开发实训教程》教材 mdi格式,office2003下可打开

    广告公司SR流水账ERP开发

    广告公司SR流水账ERP开发 广告公司SR流水账ERP开发 广告公司SR流水账ERP开发 广告公司SR流水账ERP开发 广告公司SR流水账ERP开发 广告公司SR流水账ERP开发 广告公司SR流水账ERP开发 广告公司SR流水账ERP开发 广告公司...

    ORACLE ERP二次开发技术手册

    结合前期报业、运输业、制造业的项目,通过具体的Oracle ERP二次开发项目的实践经验,对Oracle ERP二次开发的方法进行归纳和总结,形成Oracle ERP二次开发的实践流程,规范开发过程,缩短项目时间,减少开发成本。...

    erp form开发演示文件

    erp form开发演示文件.ppt

    ifs客户端乱码解决补丁

    ifs客户端乱码解决补丁,注册表文件,与大家分享。

    云计算erp开发框架

    ErpCore是一套强大的云计算ERP开发框架,集数据库设计、软件建模、模型自动生成、界面可视化设计、业务流可自定义、全自动生成用户所需系统于一体。在此框架上扩展出所有行业的业务系统,它让软件工程师从“建模——...

    ERP选型总结 ERP选型总结

    ERP选型总结 ERP选型总结ERP选型总结ERP选型总结

Global site tag (gtag.js) - Google Analytics