jsp向mysql数据库插入中文字段 乱码以及中文空白的解决办法
来源:互联网 发布:末日数据化小说 女主 编辑:程序博客网 时间:2024/05/22 03:32
1.最近在学习java web,今天在做一个小demo,作用是通过浏览器向本地数据库插入记录,照着书写了jsp代码,插入数据也提示成功了,很兴奋,但是在命令行下select 数据表,发现凡是有中文的地方就出现‘???’这样的乱码,如下:
然后就在网上找解决方案,根据网友提供的一些方法,我将jsp页面中的编码方式统统改成‘utf-8’,如下
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><%@ page contentType="text/html;charset=utf-8"%>
<%<span style="white-space:pre"></span>request.setCharacterEncoding("utf-8");%>2.然后测试,将jsp页面上的表单提交过来的数据在网页上打印出来,显示正确,所以说源数据是正确的,这让我将问题定位到mysql上,再根据网友的回答,我找到mysql的配置文件,但是我的mysql安装目录下没有所说的my.ini,只有my-default.ini文件,于是依照网上所说的,在mysql安装根目录下复制my-default.ini,并粘贴,将名字改成my.ini,修改其内容如下:
# For advice on how to change settings please see# http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html# *** DO NOT EDIT THIS FILE. It's a template which will be copied to the# *** default location during install, and will be replaced if you# *** upgrade to a newer version of MySQL.[mysqld]character-set-server=utf8# Remove leading # and set to the amount of RAM for the most important data# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.# innodb_buffer_pool_size = 128M# Remove leading # to turn on a very important data integrity option: logging# changes to the binary log between backups.# log_bin# These are commonly set, remove the # and set as required. basedir = C:\Program Files\MySQL\MySQL Server 5.6 datadir = C:\Program Files\MySQL\MySQL Server 5.6\data# port = .....# server_id = .....character-set-server=utf8# Remove leading # to set options mainly useful for reporting servers.# The server defaults are faster for transactions and fast SELECTs.# Adjust sizes as needed, experiment to find the optimal values.# join_buffer_size = 128M# sort_buffer_size = 2M# read_rnd_buffer_size = 2M #sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES3.重新启动mysql服务:
net stop mysql
net start mysql
4.进入命令行,进入mysql:mysql -uroot(用户root,本人未设密码)
5.查看所有编码:
show variables like 'character%';
这里的character_set_server=utf8;而在未添加my.ini文件前是下面这样的:
character_set_server=Latin1,这就是中文乱码的罪魁祸首。
6.解决了插入中文乱码的问题后,我尝试在命令行下insert一条中文记录,结果又出现中文空白问题:
于是又去网上查,这次很顺利,根据网上说的,先set names gbk;然后再插入中文记录就ok了。
其中set names gbk;会同时改变character_set_client,character_set_connection,character_set_results的编码值为gbk(出现空白是因为我之前将编码值全部设置成了utf8导致,上面的图是改正后的,所以有些图文不符,不过不影响说明解决编码问题的方法)
0 0
- jsp向mysql数据库插入中文字段 乱码以及中文空白的解决办法
- Hibernate向mysql数据库插入中文字段乱码问题
- jsp向数据库中插入中文乱码
- 程序向mysql插入中文乱码解决办法
- hibernate向mysql数据库插入中文乱码
- 向MySQL数据库插入中文时乱码
- MySql:jsp插入mysql数据库中文乱码
- 向mysql数据库中插入中文乱码的解决方式
- jsp向mysql数据库添加中文出现乱码的解决方案
- 向数据库插入中文乱码
- mysql字段插入中文乱码
- mysql 插入中文乱码的解决办法
- java中利用JDBC向MySql数据库中插入中文出现乱码解决办法
- mysql插入中文乱码解决办法
- Mysql 插入中文乱码 解决办法
- JSP 插入中文 mysql 乱码
- java向mysql数据库插入中文时乱码
- java向mysql数据库中插入中文乱码问题解决
- 【Android应用开发技术:应用组件】:Activity基本原理
- HDU1050——Moving Tables(贪心)
- iOS 发布证书申请
- hdu4771_2013亚洲区域赛杭州站(状态压缩bfs)
- CAGradientLayer 初识
- jsp向mysql数据库插入中文字段 乱码以及中文空白的解决办法
- 行为型模式-命令模式
- 微信公众平台开发教程第20篇-新手解惑40则
- 无线上外网,有线上内网的设置方法
- java hashMap 单线程下 抛出异常 ConcurrentModificationException
- 浏览器关闭后,Session会话结束了么?
- django中使用south同步对model的修改
- Factorization Machines 学习笔记(四)学习算法
- java并发编程concurrent包