struts mysql乱码_月光软件站 – 编程文档 – Java – struts国际化+mysql中文乱码的问题…

花了三个多小时解决的struts国际化+mysql中文乱码的问题

动力:都是这个很多字段数据表惹的祸,本来大概3个星期前就决定在代码里硬编码处理(那时折腾了前前后后近30小时),现在节约了很多时间哦。。。。爽。。。。。休息下,晚上继续

浏览器  默认以UTF-8发送请求

数据库  一般是ISO-8859-1  useUnicode=true&characterEncoding=GBK可以同一编码

tomcat编译jsp   是ISO-8859-1

做法:

jsp:

数据库:jdbc:mysql://127.0.0.1:3306/edusyseUnicode=true&characterEncoding=GBK

现象:

2.如果在java代码里加入:

类似于这样的:String sort = new String(user.getSort().getBytes(“ISO-8859-1″),”UTF-8”);

操作数据库就没问题了

3.换成问题就变成存入数据库的是些byte 码,读出到页面上不会乱码

结论:

1。用native2ascii -encoding gb2312 User_zh_CN.bak User_zh_CN.properties处理的目的是可以同一用UTF-8来编码jsp页面

2。只要在交给业务逻辑代码处理前把编码设置成UTF-8(而不是GB2312!!!! 原来就错在这里,那时没理解透)就可以了

用到了filter,相应到 上搜下一打把.

CharacterEncoding

com.lpeng.webapp.base.EncodingFilter

encoding

UTF-8

CharacterEncoding

/*

在这过程学到其他的东西:

1。再遇到困难的时候第一要保持清醒的头脑 用来思考,而不是在没想清楚之前就拼命的猜测测试,然后让把心情搞的坏到骂人

2。decode解码,encode编码,so:

getBytes(String charsetName)

Encodes this String into a sequence of bytes using the named charset, storing the result into a new byte array.

String(byte[] bytes, String charsetName)

Constructs a new String by decoding the specified array of bytes using the specified charset.

就很好理解了

发现的其他问题:

mysql-connector-java-3.0.11-stable-bin.jar

這 jar 有 bug

mysql-connector-java-3.0.10-stable-bin.jar就沒事了

下载地址:http://www.ibiblio.org/maven/mysql/jars/

down_info.asp=31289

文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览92519 人正在系统学习中 相关资源:苹果必备软件内含破解工具 iworks2016+office2016+Xcode9 GM-CSDN…

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年1月27日
下一篇 2021年1月27日

相关推荐