您的位置:首页 > 数据库 > MySQL

jsp页面写入mysql数据库时汉字乱码

2017-05-30 12:02 375 查看
自己在用jsp把中文写入mysql的时候出现乱码,原因很简单就是编码格式的问题。通过检查和搜集资料发现乱码的原因主要分为以下几类。

一.jsp页面数据编码格式

一般通过在页面上方设置编码格式即可,无需做过多的操作。(设置为UTF-8,GBK也可以,UTF-8几乎支持所有国家的语言)

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>


二.servlet页面获取和传值

在servlet页面设置response和request编码格式

public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setCharacterEncoding("UTF-8");
request.setCharacterEncoding("UTF-8");
// 获取表单中参数
String sname = request.getParameter("sname");//中文不乱码
//数据库操作,以及转发

}

三.数据库编码格式

查看并修改数据库编码格式。

方式一。通过命令窗(比较麻烦,建议使用方式二)

百度有相关教程:http://jingyan.baidu.com/article/03b2f78c68b0c15ea237ae8d.html

方式二.通过navicat for mysql工具修改

打开软件,连接数据库,右键点击打开连接->找到你使用的数据库,右键点击数据库属性,可看到如图下,修改为图中所示。





选择你使用的表,右键点击表表讯息可看到下图,查看右边整理是为utf8_bin 如果不是即点击设计表,选择选项,如下图,设置为图中编码格式。





四.还有就是JDBC建立数据库链接时最好设置好编码格式

(我的项目就是由于这个导致的乱码)


下面是我的JDBC代码,可以直接使用


重点是URL设置为


public static final String url = "jdbc:mysql://127.0.0.1/mysql?useUnicode=true&characterEncoding=UTF-8";
JDBC代码为

package com.JDBC;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class DateBase {

public static final String url = "jdbc:mysql://127.0.0.1/mysql?useUnicode=true&characterEncoding=UTF-8";
public static final String driver = "com.mysql.jdbc.Driver";
public static final String username = "root";
public static final String password = "msk";

public Connection conn=null;
public Connection getConn() {
try {
Class.forName(driver); //classLoader,加载对应驱动
conn = (Connection) DriverManager.getConnection(url, username, password);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return conn;
}


通过这些步骤,应该可以解决您的乱码问题。如果有用的话,欢迎点赞,关注!!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mysql jsp 编码