struts2 mysql 乱码_struts2项目插入中文到mysql数据库乱码的解决方法

项目又出了一些小问题,在更新/插入中文数据到mysql数据库时会显示问号。

我做了如下工作解决了问题:

1. 检查页面编码

将所有的jsp页面编码方式、字符集更改为

2. 更改数据库字符集/编码方式

将mysql配置文件my.ini相关内容改为

[mysql]

default-character-set=utf8

character-set-server=utf8

在mysql命令行运行以下代码(是否有必要存疑)

set character_set_database=utf8;

set character_set_server=utf8;

set character_set_client=utf-8;

set character_set_connection=utf-8;

在mysql命令行运行SHOW VARIABLES LIKE 'character_set_%';查看字符集

运行结果应为:

+--------------------------+---------------------------------------------------------------+

| Variable_name | Value |

+--------------------------+---------------------------------------------------------------+

| character_set_client | utf8 |

| character_set_connection | utf8 |

| character_set_database | utf8 |

| character_set_filesystem | binary |

| character_set_results | utf8 |

| character_set_server | utf8 |

| character_set_system | utf8 |

| character_sets_dir | C:\Program Files (x86)\MySQL\MySQL Server 5.5\share\charsets\ |

+--------------------------+---------------------------------------------------------------+

已经存在的数据库编码方式的修改

导出数据库结构及内容到sql文件

用文本编辑器打开sql文件

修改相关的编码方式,如把latin1修改为utf8

保存并重新导入sql文件到数据库

3. 中文参数传输编码设置

1. 更改tomcat服务器编码

修改Tomcat—->conf—–>server.xml文件,在修改端口的标签后面加一行代码,如下:

connectionTimeout="20000"

redirectPort="8443" URIEncoding="UTF-8"/>

2. 添加struts2 过滤器

建立名为EncodeFilter过滤器类(类名可更改),代码如下:

package dhu.yunfeng.filter;

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 EncodeFilter implements Filter {

public void destroy() {

}

public void doFilter(ServletRequest request, ServletResponse response,

FilterChain chain) throws IOException, ServletException {

request.setCharacterEncoding("utf-8");

chain.doFilter(request, response);

}

public void init(FilterConfig arg0) throws ServletException {

}

}

在web.xml添加过滤器。

注意:修改类名为自己命名的类,要在已存在过滤器之前

代码如下:

encoding

dhu.yunfeng.filter.EncodeFilter

encoding

/*

4. 修改国际化资源编码所使用的字符集

打开struts.xml,添加或修改相关内容

重启tomcat服务器,问题解决。

参考文章:

http://ivorytower.iteye.com/blog/179279

http://www.2cto.com/database/201410/341144.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/348480.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

常见操作系统调度算法研究(2)

轮转策略 轮转策略(Round-Robin)简称为RR,在RR里面,每个准备就绪的任务只能在有限的时间内运行,也就是说不管这个任务完成与否,都会切换任务到下一个。 由于它要频繁的切换队列,我们可以把准备…

使用Apache Ignite优化Spark作业性能(第1部分)

快来看看他们是如何工作的! 本文的某些部分摘自我的书《 Apache Ignite的高性能内存计算》 。 如果您对这篇文章感兴趣,请查看本书的其余部分,以获取更多有用的信息。 Apache Ignite提供了几种提高Spark作业性能的方法:Ignite RD…

centos8.2安装mysql_为CentOS 8操作系统安装MySQL的方法,以安装MySQL 8为例

在本文中,我们将向你展示如何在CentOS 8操作系统上安装MySQL 8.0,可从默认的CentOS 8存储库中安装最新版本的MySQL数据库服务器8.0版,CentOS 8还提供了MariaDB 10.3,它是MySQL 5.7的直接替代品,但有一些限制&#xff0…

rust中的堆和栈

堆和栈定义: 在数据结构中,栈是一种可以实现“先进后出”(或者称为“后进先出”)的存储结构。假设给定栈 S(a0,a1,…,an-1),则称 a0 为栈底,an-1…

mysql查看索引创建进度_SQL Server查看索引重建、重组索引进度

相信很多SQL Server DBA或开发人员在重建或重组大表索引时,都会相当郁闷,不知道索引重建的进度,这个对于DBA完全是一个黑盒子,对于系统负载非常大的系统或维护窗口较短的系统,你会遇到一些挑战。例如,你创建…

rust中函数 变量 控制结构

变量相关 不可变 let x可变 let nut x常量 const x:T value静态变量 static x:TT::new();可变的静态变量 static mut x:TT::new(); 可能要使用到lazy_static()变量函数体 fn x(a1;T1…) -T{} 如果函数没有返回值 那么返回值就会为unit结构体 struct S {…} 1.元组结构体 struc…

选择Java密码算法第1部分-散列

抽象 这是涵盖Java加密算法的三部分博客系列的第1部分。 本系列介绍如何实现以下目标: 使用SHA–512散列 使用AES–256的单密钥对称加密 使用RSA–4096的公钥/私钥非对称加密 这第一篇文章详细介绍了如何实现SHA–512哈希。 让我们开始吧。 免责声明 这篇文章仅…

mysql order by date_Best practice question for MySQL: order by id or date?

问题This is kind of a noobish question, but its one that Ive never been given a straight answer on.Suppose I have a DB table with the following fields and values:| id | date_added | balance |------------------------------------| 1 | 2009-12-01 19:43:22 | 1…

坚实原则:单一责任原则

单一责任原则是首字母缩写词的第一原则。 “一个班级只有一个改变的理由。” 每个模块或类都应对软件提供的功能的单个部分负责,并且该责任应由类完全封装。 例如,想象一下导航软件的场景。 我们根据给定的方向(北,南&#xf…

rust的项目管理

cargo cargo是rust的包管理工具 创建的一个项目 cargo new expr编写完代码之后记得编译一下,然后运行 cargo build运行项目cargo run 当我们觉得项目编译起来太慢了的时候可以将项目编辑成release版本 cargo run --releasecrate 在 Rust 里,一个项目…

宋利兵 mysql_《MySQL 5.7 Replication新特性》分享之互动问题解答

分享主题《MySQL 5.7 Replication新特性》嘉宾介绍宋利兵,MySQL研发工程师。2009年加入MySQL全球研发团队,从事MySQL复制相关功能的开发。主题介绍主要分享在MySQL 5.7中,Replication(复制)相关的一些新特性,比如多源复制、增强半同步复制、并…

使用Eclipse Deeplearning4j构建简单的神经网络

神经网络导论 深度学习既包含深度神经网络又包含深度强化学习,这是机器学习的子集,而机器学习本身就是人工智能的子集。 广义上讲,深度神经网络执行机器感知,该机器感知从原始数据中提取重要特征,并对每个观察结果做出…

mysql 注入 绕过防火墙_绕过阿里云防火墙继续扫描探测和SQL注入

前言如今的互联网,WAF泛滥的年代,实在让我等脚本小子苦恼ing,尤其是阿里云服务器的自带防护,那不是一般的叫人牙疼,十个站8个站都是阿里云....最近遇到几个站都是阿里云的服务器,比如:泛微e-col…

坚实原则:依赖倒置原则

到目前为止,我们只研究了单一职责 , 打开/关闭 , liskov替换和接口隔离原则。 依赖倒置是我们要研究的最后一个原理之一。 该原则指出 答:高级模块不应依赖于低级模块。 两者都应依赖抽象。 B.抽象不应依赖细节。 细节应取决于…

python处理中文字符串_python字符串中的中文处理

LeetCode 374. Guess Number Higher or LowerWe are playing the Guess Game. The game is as follows: I pick a number from 1 to n. You have to gues ...【HDU】1693 Eat the Treeshttp://acm.hdu.edu.cn/showproblem.php?pid1693 题意:nm的棋盘求简单回路(可以…

java创建类的三个步骤_3个简单步骤即可测试Java 8

java创建类的三个步骤即将发布的Java 8版本为Java开发人员带来了许多新功能,但是升级时始终存在代码破裂的风险。 我们都记得Java 7出厂时有一系列非常严重的错误 。 当然,我们所有人都可以帮助避免在Java 8中出现相同的问题。我今天要介绍的方法是使用…

mybatis嵌套查询和嵌套结果有什么区别_Java面试专题之九:Mybatis面试5个大概率被问到的问题...

1、为什么说 Mybatis 是半自动 ORM 映射工具?它与全自动的区别在哪里?Hibernate 属于全自动 ORM 映射工具,使用 Hibernate 查询关联对象或者关联集合对象时,可以根据对象关系模型直接获取,所以它是全自动的。而 Mybati…

使用Pargon-neo进行5G sync相关的测试

前言 Paragon-neo是Calnex旗下的一款测试仪器,主要用于5G的高精度场景下的PTP与SyncE的测试,它可以提供高达100GbE的测试速度,可以用在ITU-T G.8273.2 C/D类边界时钟测试,符合O-RAN的O-DU和O-RU设备,以及设计和部署5G…

功能Java示例 第1部分–从命令式到声明式

函数式编程(FP)的目的是避免重新分配变量,避免可变的数据结构,避免状态并全程支持函数。 如果将功能性技术应用于日常Java代码,我们可以从FP中学到什么? 在这个名为“ Functional Java by Example”的系列…

python怎样使用各个日期赤纬_python--日期操作

import datetimedatetime有几个常用类:date time datetime timedelta1. 今天日期时间(今天时间)>>> import datetime>>> now datetime.datetime.now()>>> print now2014-06-04 21:08:32.952591(今天日期)>>> print datetime…