热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

解决JavaWeb开发中Jsp存储读取MySQL数据中文乱码的问题-mysql教程

MySQL虽说好用,但很容易出现中文乱码的问题,以下列出JavaWeb开发中常见的几种中文乱码问题:1、JSP页面显示问题2、存入MySQL数

MySQL虽说好用,但很容易出现中文乱码的问题,以下列出Java Web开发中常见的几种中文乱码问题:1、JSP页面显示问题2、存入MySQL数

MySQL虽说好用,但很容易出现中文乱码的问题,以下列出Java Web开发中常见的几种中文乱码问题:

1、JSP页面显示问题

2、存入MySQL数据中文乱码

3、读取MySQL数据中文乱码

字符集:字符集定义了它包含哪些字符以及每个字符对应什么数字。
字符编码:在计算机中存储数字,显示时转换为对应的字符,编码方式是指表示字符的数字以什么方式存储。

介个也太唧唧歪歪了,不搞这个研究的可以完全忽视。只要知道UTF-8是为统一世界上所有字符编码的产物就ok了。

解决方法才是王道:

(如果页面使用到CKEditor插件的话,其实中文乱码和这个关系不大)

1、JSP显示中文乱码的问题,一般都是没有设置页面编码,注意添加以下这样一段代码

<%@ page pageEncoding=”UTF-8”%>

<%@ page language="java" cOntentType="text/html; charset=UTF-8"%>

"pageEncoding"指定了当前jsp文件存储使用的编码方式,“contentType”用来指定响应头消息中的"Content-Type"

当服务端的响应头消息中没有指定charset时,客户端会依据上面代码中的charset指定的编码方式解码页面

并且JSP都以UTF-8的编码方式保存,把所有可能出现的问题通通抹杀。 如果你使用Myeclipse,可以设置Myeclipse的默认参数,使Myeclipse新建JSP文件时,可以自动是用UTF-8的编码方式。方法:Windows-Preference-Myeclipse-File and Editor-JSP-Encoding,选择ISO 10646/Unicode(UTF-8)

2、存储数据,MySQL表的编码设定,最好指定相应的编码格式。字符集选择utf8,校对utf8_unicode_ci。

安装MySQL时,会提示使用什么样的默认编码,当然也可以自己设定

修改 my.ini(MySQ安装目录下的文件)

# CLIENT SECTION
[client]
port=3306
[mysql]
default-character-set=utf8

# The default character set that will be used when a new schema or table is
# created and no character set is defined
default-character-set=utf8

修改完毕后,务必记得重启MySQL!!!修改这个文件,是我设置了CharacterEncoding、指定了页面编码、并且使用了过滤器依旧无法解决问题,几近崩溃的时候,最后的救命稻草!

3、读取数据时,,在Servlet中添加request.setCharacterEncoding("UTF-8");可以很好地解决从JSP页面接受中文参数乱码

4、使用过滤器,如果在MySQL默认编码格式为UTF-8的情况下,只使用过滤器,便可以解决一切问题,无论你有没有设置那些繁杂的编码。

在包中建一个class:CharacterEncodingFilter

package com.rady.blog;

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 CharacterEncodingFilter implements Filter {
private FilterConfig config;
private String encoding = "UTF-8";

public void destroy() {
cOnfig= null;
}

@Override
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
request.setCharacterEncoding(encoding);
chain.doFilter(request, response);
}

public void init(FilterConfig config) throws ServletException {
this.cOnfig= config;
String s = config.getInitParameter("encoding");
if (s != null) {
encoding = s;
}
}
}

在web.xml中添加

EncodingFilter
com.rady.blog.CharacterEncodingFilter

encoding
UTF-8



EncodingFilter
/*

最后把Tomcat也干掉,防患于未然,滴水不漏,中文从此不再!

修改Tomcat安装目录/conf/server.xml文件

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

推荐阅读
  • 基于Spring Boot的家政服务平台毕业设计项目(含源代码)
    本文档介绍了如何搭建和运行一个基于Spring Boot的家政服务平台,旨在为计算机专业学生提供毕业设计参考。项目涵盖了从环境配置到核心功能实现的全过程。 ... [详细]
  • 简化报表生成:EasyReport工具的全面解析
    本文详细介绍了EasyReport,一个易于使用的开源Web报表工具。该工具支持Hadoop、HBase及多种关系型数据库,能够将SQL查询结果转换为HTML表格,并提供Excel导出、图表显示和表头冻结等功能。 ... [详细]
  • Java EE CDI:解决依赖关系冲突的实例
    在本教程中,我们将探讨如何在Java EE的CDI(上下文和依赖注入)框架中有效解决依赖关系的冲突问题。通过学习如何使用限定符,您将能够为应用程序的不同客户端提供多种接口实现,并确保每个客户端都能正确调用其所需的实现。 ... [详细]
  • 本文详细介绍了一种通过MySQL弱口令漏洞在Windows操作系统上获取SYSTEM权限的方法。该方法涉及使用自定义UDF DLL文件来执行任意命令,从而实现对远程服务器的完全控制。 ... [详细]
  • 深入理解ExtJS:从入门到精通
    本文详细介绍了ExtJS的功能及其在大型企业前端开发中的应用。通过实例和详细的文件结构解析,帮助初学者快速掌握ExtJS的核心概念,并提供实用技巧和最佳实践。 ... [详细]
  • 通常情况下,修改my.cnf配置文件后需要重启MySQL服务才能使新参数生效。然而,通过特定命令可以在不重启服务的情况下实现配置的即时更新。本文将详细介绍如何在线调整MySQL配置,并验证其有效性。 ... [详细]
  • MySQL Debug 模式的实现与应用
    本文详细介绍了如何启用和使用 MySQL 的调试模式,包括编译选项、环境变量配置以及调试信息的解析。通过实际案例展示了如何利用调试模式解决客户端无法连接服务器的问题。 ... [详细]
  • 解决Hive操作无响应问题:drop table和create table的处理方法
    本文详细介绍了在Hive中执行drop table和create table命令时遇到无响应的情况,并提供了完整的解决方案。通过调整MySQL字符集编码,确保Hive数据库与MySQL之间的兼容性,从而有效解决问题。 ... [详细]
  • 本文介绍了如何使用Gradle和gdx-setup.jar工具来创建LibGDX项目,包括详细的步骤和注意事项,适合初学者和有经验的开发者。 ... [详细]
  • MyEclipse技巧:高效生成toString方法
    本文将介绍如何在MyEclipse中快速且高效地生成toString方法,帮助开发者简化编码过程,提高开发效率。 ... [详细]
  • 基于Java的学生宿舍管理系统设计
    本论文探讨了如何利用Java技术设计和实现一个高效的学生宿舍管理系统。该系统旨在提高宿舍管理的效率,减少人为错误,同时增强用户体验。通过集成用户认证、数据管理和查询功能,系统能够满足学校宿舍管理的多样化需求。 ... [详细]
  • 2014年4月17日,深入研究了邵杨的代码库,发现代码中的注释较为稀少,影响了理解的效率。同时,学习了一些Eclipse的高效操作技巧。 ... [详细]
  • 探索新一代API文档工具,告别Swagger的繁琐
    对于后端开发者而言,编写和维护API文档既繁琐又不可或缺。本文将介绍一款全新的API文档工具,帮助团队更高效地协作,简化API文档生成流程。 ... [详细]
  • 本文探讨了在构建应用程序时,如何对不同类型的数据进行结构化设计。主要分为三类:全局配置、用户个人设置和用户关系链。每种类型的数据都有其独特的用途和应用场景,合理规划这些数据结构有助于提升用户体验和系统的可维护性。 ... [详细]
  • Linux中的yum安装软件
    yum俗称大黄狗作用:解决安装软件包的依赖关系当安装依赖关系的软件包时,会将依赖的软件包一起安装。本地yum:需要yum源,光驱挂载。yum源:(刚开始查看yum源中的内容就是上图 ... [详细]
author-avatar
awdewqd65_988
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有