通过JSP页面向MySQL数据库插入中文数据时乱码问题
刚开始插入数据时,mysql数据库表内显示???,读取时同样也是???
对此查找了相关资料,首先注意保持服务器、数据库、项目、以及前端编码一致。
具体做法是:
一、项目编码,Eclipse设置。
Eclipse Java EE IDE for Web Developers ->右键项目 -> Properties -> Resource -> Text file encoding ->other utf-8 ->apply and close
二、tomcat服务器编码设置(conf\server.xml)
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8"/> <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" URIEncoding="UTF-8"/>
三、数据库mysql的my.ini配置文件
[client] port = 3306 default-character-set=utf8 [mysqldump] quick max_allowed_packet = 16M [mysql] no-auto-rehash ; Remove the next comment character if you are not familiar with SQL ;safe-updates default-character-set=utf8 [isamchk] key_buffer_size = 20M sort_buffer_size = 20M read_buffer_size = 2M write_buffer_size = 2M [myisamchk] key_buffer_size = 20M sort_buffer_size_size = 20M read_buffer_size = 2M write_buffer_size = 2M [mysqlhotcopy] interactive-timeout [mysqld] port = 3306 character-set-server = utf8
修改文件后需要使用net stop mysql/net start mysql关闭开启mysql服务重启mysql服务
四、项目
检查项目中有前端编码的地方
a. JSP页面
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
b. Servlet服务器端
response.setCharacterEncoding("UTF-8");
c. 其它有编码的地方。
把所有的编码设置一致。本例是为UTF-8.
通过以上步骤还款解决的话,可以在项目中加一个Filter:
package com.kh.utils; 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 SetCharacterEncodingFilter implements Filter { protected String encoding = null; protected FilterConfig filterConfig = null; protected boolean ignore = true; public void destroy() { this.encoding = null; this.filterConfig = null; } public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { // Conditionally select and set the character encoding to be used if (ignore || (request.getCharacterEncoding() == null)) { String encoding = selectEncoding(request); if (encoding != null) request.setCharacterEncoding(encoding); } // Pass control on to the next filter chain.doFilter(request, response); } public void init(FilterConfig filterConfig) throws ServletException { this.filterConfig = filterConfig; this.encoding = filterConfig.getInitParameter("encoding"); String value = filterConfig.getInitParameter("ignore"); if (value == null) this.ignore = true; else if (value.equalsIgnoreCase("true")) this.ignore = true; else if (value.equalsIgnoreCase("yes")) this.ignore = true; else this.ignore = false; } protected String selectEncoding(ServletRequest request) { return (this.encoding); } }
在Web.xml中加入配置代码:
<filter> <filter-name>encodingFilter</filter-name> <filter-class>com.kh.utils.SetCharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> <init-param> <param-name>ignore</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <filter-name>encodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
相关推荐
当在使用JSP页面向MySQL数据库插入中文数据时,经常会出现乱码问题。这个问题主要是由于字符编码不一致导致的,因为JSP页面和数据库对字符集的处理方式有所不同,如果处理不当,就会导致中文乱码。 首先,要了解...
JSP MySQL 插入数据时出现中文乱码问题的解决方法 在 JSP 应用程序中,使用 MySQL 数据库时,插入中文数据可能会出现乱码问题。这种问题的产生是因为客户端和服务器端的字符集编码不一致所导致的。解决这个问题需要...
以下是一些关键的知识点和步骤来解决JSP存入数据库中的乱码问题: 1. **理解编码问题**:乱码通常发生在字符从一种编码转换到另一种编码时,例如从UTF-8编码的JSP页面转换到GBK编码的数据库。确保所有环节都使用...
以下是一些关于如何解决MySQL数据库乱码问题的关键知识点: 1. **安装时的字符集选择**: - MySQL在安装时会要求设置默认的字符集。如果这个字符集与你的应用程序(如JSP页面)使用的编码不同,可能会引起乱码。 ...
在处理MySQL数据库插入中文数据时,经常遇到编码问题导致乱码。这主要是由于不同环节的编码不一致所造成的。以下是两种解决方法,适用于普通Web项目和Struts框架的项目。 ### 方法一:普通Web项目 #### 1. 页面...
### Java插入数据乱码解决集锦 #### 一、Java中文问题的由来及核心问题解析 Java作为一种广泛使用的编程语言,在处理中文等多语言文本时可能会遇到字符编码不匹配导致的乱码问题。这些问题主要源于Java程序在不同...
jsp 操作 MySQL 实现查询、插入、删除功能示例是指使用 Java 服务器页面(jsp)来操作 MySQL 数据库,以实现查询、插入、删除等基本数据库操作的示例。 jsp 操作 MySQL 实现查询功能示例 在该示例中,jsp 页面使用...
MySQL数据库在存储中文字符时也需要正确设置字符编码以保证中文数据不出现乱码。在给定的代码中,开发者在mysql_insert.jsp页面中尝试通过执行SQL命令来设置数据库的字符集: ```jsp stmt.executeQuery("SET NAMES ...
4. 数据库编码问题:数据库表的编码与插入或查询时使用的编码不匹配,也可能导致乱码。 三、乱码问题解决方案 1. 统一编码:确保所有环节(如JSP页面、HTML、CSS、JavaScript、数据库、文件系统等)都使用同一套...
### MySQL乱码问题解决方案 #### 一、理解MySQL字符集设置的重要性 在处理数据库操作时,字符集(Character Set)的正确配置对于确保数据的准确读取与存储至关重要。特别是对于包含多语言文本的应用场景,如中文、...
解决JSP中文乱码问题需要关注多个环节,包括JSP页面的编码设置、请求和响应处理、文件操作、数据库操作以及开发工具的配置。只有确保每个环节都正确处理字符编码,才能彻底解决中文乱码的问题。在实际开发中,养成...
以下是从给定的部分内容中提取的关键代码段,展示了如何在JSP页面中连接MySQL数据库并查询数据: ```jsp ;charset=GB2312" pageEncoding="GB2312"%> *"%> String DBDRIVER = "org.gjt.mm.mysql.Driver"; String ...
### 经典JSP对MySQL数据库的增加与展示:深入解析 #### 核心知识点概述 在本案例中,我们探讨了如何利用JSP(Java Server Pages)技术结合MySQL数据库实现数据的增加与展示功能。这涉及到JSP页面设计、数据库连接...
这里我们将深入探讨如何解决Linux环境下Tomcat服务器向MySQL数据库插入中文数据时出现乱码的问题。 首先,我们要了解这个问题的背景。在Windows上开发的项目,可能在本地环境使用了某种特定的字符编码(如UTF-8),...
**问题描述**:当应用程序通过JDBC连接到MySQL数据库时,如果查询结果中包含中文字符,可能会出现乱码。这是由于数据库连接字符串中的字符集编码未被正确设置导致的。 **解决方案**:为了避免这种问题,在数据库...
在实际操作中,当JSP尝试向MySQL数据库插入汉字时,可能会遇到乱码问题。这是因为字符编码不一致导致的。为了解决这个问题,可以在连接数据库时指定字符编码,例如设置为`utf-8`,如下所示: ```java Properties ...
除了上述解决方法,还有其他可能出现中文乱码的场景,如JSP文件和HTML相互引入时的乱码、MySQL数据库插入数据时的乱码、页面转发过程中的乱码以及SmartUpload组件处理中文文件名时的乱码等。对于这些问题,一般也...