碰到中文问题主要有几类:

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 中文问题解决方法相关推荐

  1. 关于MAC下pymysql连接mysql数据库报错2003的问题解决方法

    关于MAC下pymysql连接mysql数据库报错2003的问题解决方法 问题:pymysql.err.OperationalError: (2003, "Can't connect to ...

  2. (转) Spring 3 报org.aopalliance.intercept.MethodInterceptor问题解决方法

    http://blog.csdn.net/henuhaigang/article/details/13678023 转自CSDN博客,因为一个jar包没引入困扰我好长时间 ,当时正在做spring A ...

  3. mysql command line client和mysql.exe输入密码后闪退问题解决方法

    本来今天刚有了新电脑,装上mysql使用时发现中文乱码的情况,于是按照我以前的方法设置了mysql的几个字符集,都设置成了utf8,但是还是不行,看网上说要设置my.ini中的默认字符集default ...

  4. GDAL\OGR C#中文路径不支持的问题解决方法

    昨天的博客里面使用GDAL.OGR库写了一个用C#读取图像和矢量信息的一个小Demo.忘记测试中文路径了,今天测试了一下,发现中文路径果然不支持.如下图所示: 出现这个问题很奇怪,我自己编译的GDAL ...

  5. mybatis mysql 1048_mybatis连接MySQL8出现的问题解决方法

    使用MySQL8,在整合ssm框架,用mybatis逆向工程生成的代码测试时,执行到数据库查询前均正常,但进行查询时,便卡主没有反应了,设置了日志.try catch等也不报错,页面就在那一直转,之前 ...

  6. 阿里云centos 6.3 安装宝塔nginx面板无法远程mysql数据库和无法FTP连接问题解决方法

    数据库不能远程连接解决方法: 1.数据库配置可以远程访问 2.允许3306端口外出 ftp不能连接解决方法:端口添加3900-4000

  7. 程序输出urf-8编码的xml文件中文(汉字)乱码问题解决方法

    asp.net,php,jsp等语言在输出utf-8是需要在输出开始添加三个字节的内容,不让输出的文件会有一定的问题,希望对大家有所帮助. Using ASP.NET C# Response.Cont ...

  8. python php 通信,Python和php通信乱码问题解决方法

    Python和php通信乱码问题解决方法 发布于 2014-07-29 22:28:21 | 118 次阅读 | 评论: 0 | 来源: 网友投递 PHP开源脚本语言PHP(外文名: Hypertex ...

  9. springMVC保存数据到mysql数据库中文乱码问题解决方法

    springMVC保存数据到mysql数据库中文乱码问题解决方法 参考文章: (1)springMVC保存数据到mysql数据库中文乱码问题解决方法 (2)https://www.cnblogs.co ...

  10. mysql c 中文字符串_MySQL字符集中文乱码终极解决方案和mysql查询中文问题解决方法...

    开源数据库MySQL从来都是中小企业构建web应用的首选,特别是和PHP配合简直就是一 对黄金搭档,深受web开发人员的喜爱.但自从4.1以来MySQL加入了多字符集的支持,很多MySQL使用者发现中 ...

最新文章

  1. python字典{:4}_Python字典101:详细的视觉介绍
  2. VC 2.5 与 ESX 3.0.1 之间存在接口问题
  3. 有关sql server 2000的数据类型
  4. django jquery ajax 知识点
  5. Linux C简单的web服务器
  6. java实现简单二叉树
  7. 中国大推力矢量发动机WS15 跨入 世界先进水平!
  8. Linq快速入门——扩展方法
  9. 一键搞定JavaEE应用,JTM1.0(JRE+Tomcat+MySQL绿色运行环境)
  10. 进入显示器工厂模式的方法 【95种品牌 维修珍藏资料】
  11. 揭示:为什么别人的超级浏览器防关联有效
  12. Linux工具篇 | Linux下安装repo工具
  13. 小学计算机网络教室简介,市中小学计算机网络教室(网络学习室)
  14. Redis 哨兵模式安装方法
  15. vue视频教程百度云资源链接
  16. mysql 5.166修改字符集_mysql字符集问题
  17. JAVA生成带图片带名称的二维码
  18. 2020年R2移动式压力容器充装多少分及格及R2移动式压力容器充装考试申请表
  19. c语言中类似于大括号的符号,大括号符号 c语言大括号的用法
  20. 小米笔记本 Air 13 评测

热门文章

  1. 8.Docker技术入门与实战 --- 使用Dockerfile创建镜像
  2. 7.运输层---UDP
  3. 14.bash(2) 与 环境变量
  4. linux修改登录密码门,Linux更改用户密码
  5. css中的clip属性rect(top,right,bottom,left);
  6. CF986F Oppa Funcan Style Remastered
  7. yii2 advanced版基础部分
  8. Java课程设计——学生信息系统(团队)
  9. leetcode——Divide Two Integers
  10. [WP8] Binding时,依照DataType来选择DataTemplate