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

来源:互联网 发布:手机windows live ID 编辑:程序博客网 时间:2024/05/17 13:41

自己在用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;    }

通过这些步骤,应该可以解决您的乱码问题。如果有用的话,欢迎点赞,关注!!!

原创粉丝点击