spring mysql 中文_Spring+mysql+velocity 中文问题解决方法
碰到中文问题主要有几类:
1)从confluence的mysql数据库导出的UTF-8数据
2)http get/post请求中汉字
3)ajax xmlhttprequest传递的汉字
4)mysql环境设置
5)spring /velocity /jboss环境的中文配置
成功的文件配置关键内容如下:
1.1spring2应用Web.xml配置
encodingFilter
org.springframework.web.filter.CharacterEncodingFilter
encoding
GB2312
forceEncoding
true
1.2Ibatissqlmap-config.xml
1.3ibatis jdbc配置:
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://127.0.0.1:3306/scmproj?useUnicode=true&characterEncoding=UTF-8
1.4spring mvc:
WEB-INF/velocity/
GB2312
GB2312
text/html;charset=GB2312
false
1
true
templates.vm
org.apache.velocity.runtime.log.SimpleLog4JLogSystem
com.ali
true
true
false
true
.vm
true
true
true
dateTool
由于页面上文字是汉字,但数据库为utf-8。VelocityViewResolver的contentType必须为UTF-8 ,否则部分复杂汉字无法正常显示。如璟。
1.5Mysql5.0创建数据库:
create database scmproj DEFAULT CHARACTER SET utf8;
1.6mysql的配置文件my.ini:
[mysql]
default-character-set=gb2312
[mysqld]
default-character-set=utf8
1.8velocity表单提交前编码
Function GetByteCode(ch)
code = Asc(ch)' -20001
GetByteCode = Hex(code) ' "B1DF"
End Function
String.prototype.urlEncode = function() {
var r = "";
for (var i = 0; i < this.length; i++) {
var code = "" + GetByteCode(this.charAt(i));
if (code.length > 2) {
var b1 = code.substr(0, code.length - 2);
var b2 = code.substr(code.length - 2);
if (i == 0) {
//alert("" + code + ", " + b1 + ", " + code.length + ", " + b2);
}
r += "%" + b1 + "%" + b2;
} else {
r += "%" + code;
}
}
return r;
}
Function checkform()
{
var ōldvalue= document.formtips.content.value;
if(oldvalue=="")
{
alert("请设置值");
return false;
}
var urlEncodeResult=oldvalue.urlEncode();
document.formtips.content.value=urlEncodeResult;
}
1.9接收form表单的服务器端代码
protected ModelAndView onSubmit(HttpServletRequest request,
HttpServletResponse response, Object command, BindException errors)
throws Exception {
try {
SCMTips tips = (SCMTips) command;
if (logger.isInfoEnabled()) {
logger.info("before decode content:" + tips.getContent());
logger.info("requestEncode="+ request.getCharacterEncoding());
}
String decoderesult = java.net.URLDecoder.decode(tips.getContent(),
"gb2312");
if (logger.isInfoEnabled()) {
logger.info("decode result:" + decoderesult);
}
1.10AJAX发送端
functionmakeHttpReq()
{
var new_httpreq = null;
if (window.XMLHttpRequest) {
new_httpreq = new XMLHttpRequest();
if (new_httpreq.overrideMimeType){
new_httpreq.overrideMimeType('text/xml');
}
} else if (window.ActiveXObject) {
try{
new_httpreq = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
new_httpreq = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {
}
}
}
returnnew_httpreq;
}
if (httpReq) {
httpReq.onreadystatechange = function(){
if(httpReq.readyState == 4)
{
//var console=document.getElementById('console');
//alert(httpReq.responseText);
//console.innerHtml = httpReq.responseText;
}
};
httpReq.open("GET", url, true);
httpReq.setRequestHeader("If-Modified-Since","0");
httpReq.send(null);
}
从上面可以看到httqreq没有指定编码格式。默认就是ISO-8859-1。
2.11 接收ajax处理的服务器端代码
public ModelAndView handleRequestInternal(HttpServletRequest request,
HttpServletResponse response) throws Exception {
if (request.getMethod().equals("GET")) {
String encodeProj = request.getParameter("projectname");
if (logger.isInfoEnabled()) {
logger.info("before decode:" + encodeProj);
}
//客户端经过编码后的汉字
String projectname= new String( encodeProj.getBytes( "8859_1" ) , "gb2312" );
if (logger.isInfoEnabled()) {
logger.info("after decode:" + projectname);
}2.12 JBOSS4.2配置
D:\jboss-4.2.2.GA\server\default\deploy\jboss-web.deployer \Server.xml 里面
-->
maxThreads="250" maxHttpHeaderSize="8192"
emptySessionPath="true" protocol="HTTP/1.1"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" />
没有修改URIEncoding
spring mysql 中文_Spring+mysql+velocity 中文问题解决方法相关推荐
- 关于MAC下pymysql连接mysql数据库报错2003的问题解决方法
关于MAC下pymysql连接mysql数据库报错2003的问题解决方法 问题:pymysql.err.OperationalError: (2003, "Can't connect to ...
- (转) Spring 3 报org.aopalliance.intercept.MethodInterceptor问题解决方法
http://blog.csdn.net/henuhaigang/article/details/13678023 转自CSDN博客,因为一个jar包没引入困扰我好长时间 ,当时正在做spring A ...
- mysql command line client和mysql.exe输入密码后闪退问题解决方法
本来今天刚有了新电脑,装上mysql使用时发现中文乱码的情况,于是按照我以前的方法设置了mysql的几个字符集,都设置成了utf8,但是还是不行,看网上说要设置my.ini中的默认字符集default ...
- GDAL\OGR C#中文路径不支持的问题解决方法
昨天的博客里面使用GDAL.OGR库写了一个用C#读取图像和矢量信息的一个小Demo.忘记测试中文路径了,今天测试了一下,发现中文路径果然不支持.如下图所示: 出现这个问题很奇怪,我自己编译的GDAL ...
- mybatis mysql 1048_mybatis连接MySQL8出现的问题解决方法
使用MySQL8,在整合ssm框架,用mybatis逆向工程生成的代码测试时,执行到数据库查询前均正常,但进行查询时,便卡主没有反应了,设置了日志.try catch等也不报错,页面就在那一直转,之前 ...
- 阿里云centos 6.3 安装宝塔nginx面板无法远程mysql数据库和无法FTP连接问题解决方法
数据库不能远程连接解决方法: 1.数据库配置可以远程访问 2.允许3306端口外出 ftp不能连接解决方法:端口添加3900-4000
- 程序输出urf-8编码的xml文件中文(汉字)乱码问题解决方法
asp.net,php,jsp等语言在输出utf-8是需要在输出开始添加三个字节的内容,不让输出的文件会有一定的问题,希望对大家有所帮助. Using ASP.NET C# Response.Cont ...
- python php 通信,Python和php通信乱码问题解决方法
Python和php通信乱码问题解决方法 发布于 2014-07-29 22:28:21 | 118 次阅读 | 评论: 0 | 来源: 网友投递 PHP开源脚本语言PHP(外文名: Hypertex ...
- springMVC保存数据到mysql数据库中文乱码问题解决方法
springMVC保存数据到mysql数据库中文乱码问题解决方法 参考文章: (1)springMVC保存数据到mysql数据库中文乱码问题解决方法 (2)https://www.cnblogs.co ...
- mysql c 中文字符串_MySQL字符集中文乱码终极解决方案和mysql查询中文问题解决方法...
开源数据库MySQL从来都是中小企业构建web应用的首选,特别是和PHP配合简直就是一 对黄金搭档,深受web开发人员的喜爱.但自从4.1以来MySQL加入了多字符集的支持,很多MySQL使用者发现中 ...
最新文章
- python字典{:4}_Python字典101:详细的视觉介绍
- VC 2.5 与 ESX 3.0.1 之间存在接口问题
- 有关sql server 2000的数据类型
- django jquery ajax 知识点
- Linux C简单的web服务器
- java实现简单二叉树
- 中国大推力矢量发动机WS15 跨入 世界先进水平!
- Linq快速入门——扩展方法
- 一键搞定JavaEE应用,JTM1.0(JRE+Tomcat+MySQL绿色运行环境)
- 进入显示器工厂模式的方法 【95种品牌 维修珍藏资料】
- 揭示:为什么别人的超级浏览器防关联有效
- Linux工具篇 | Linux下安装repo工具
- 小学计算机网络教室简介,市中小学计算机网络教室(网络学习室)
- Redis 哨兵模式安装方法
- vue视频教程百度云资源链接
- mysql 5.166修改字符集_mysql字符集问题
- JAVA生成带图片带名称的二维码
- 2020年R2移动式压力容器充装多少分及格及R2移动式压力容器充装考试申请表
- c语言中类似于大括号的符号,大括号符号 c语言大括号的用法
- 小米笔记本 Air 13 评测
热门文章
- 8.Docker技术入门与实战 --- 使用Dockerfile创建镜像
- 7.运输层---UDP
- 14.bash(2) 与 环境变量
- linux修改登录密码门,Linux更改用户密码
- css中的clip属性rect(top,right,bottom,left);
- CF986F Oppa Funcan Style Remastered
- yii2 advanced版基础部分
- Java课程设计——学生信息系统(团队)
- leetcode——Divide Two Integers
- [WP8] Binding时,依照DataType来选择DataTemplate