博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Mysql错误问题记录
阅读量:6236 次
发布时间:2019-06-22

本文共 931 字,大约阅读时间需要 3 分钟。

① Incorrect string value: '\xE6\x94\xBE\xE5\xA4\xA7...' for column 'name' at row 1 Query……

原因:编码不匹配。数据库是latin1编码,而插入的中文字符串是utf-8编码。

解决思路:

一、修改数据库的编码。

这个解决办法一劳永逸,省去大量的编码转换工作。需要配置数据库配置参数如下:

打开数据库配置文件my.ini(Windows)或者/etc/my.cnf(Linux)。

修改或者增加如下参数:

在 [mysql]  标签下加上一行

default_character_set = utf8

在 [mysqld] 标签下加上三行

default_character_set = utf8

character_set_server = utf8

collation_server = utf8_general_ci

init_connect = 'SET collation_connection = utf8_general_ci'

init_connect = 'SET NAMES utf8' 

在 [mysql_server]标签下加上一行

default_character_set = utf8

在 [mysqld_safe]标签下加上一行

default_character_set = utf8

在 [client]标签下加上一行

default_character_set = utf8

二、转换插入的中文字符编码。

假设插入中文字符串srcStr,需要转换成如下字符串:

String insertStr = new String(srcStr.getBytes("utf-8"),"iso-8859-1");

这种思路在取出字符串时需要再转换一次编码,所以推荐第一种解决办法。

 

PS:其实转换的时候遇到另外一个问题,就是HttpServletRequest打印出来的编码格式是utf-8,实际转换编码的时候用的是gb2312……有人知道这是为什么吗?

转载于:https://www.cnblogs.com/yoyotl/p/5180260.html

你可能感兴趣的文章
windows查看端口占用
查看>>
Yii用ajax实现无刷新检索更新CListView数据
查看>>
JDBC的事务
查看>>
App 卸载记录
查看>>
JavaScript变量和作用域
查看>>
开源SIP服务器加密软件NethidPro升级
查看>>
Apache Pulsar中的地域复制,第1篇:概念和功能
查看>>
python pip install 出现 OSError: [Errno 1] Operation not permitted
查看>>
从源码分析scrollTo、scrollBy、Scroller方法的区别和作用
查看>>
ObjectOutputStream和ObjectInputStream
查看>>
南京大学周志华教授当选欧洲科学院外籍院士
查看>>
马士兵教学语录
查看>>
计算机网络与Internet应用
查看>>
oracle在线迁移同步数据,数据库报错
查看>>
linux性能剖析工具
查看>>
flutter中的异步
查看>>
计算机高手也不能编出俄罗斯方块——计算机达人成长之路(16)
查看>>
error LNK2001: 无法解析的外部符号 __CrtDbgReport
查看>>
【多线程】的简单理解&进程 and【你的电脑是几核的?】
查看>>
# 2017-2018-1 20155224 《信息安全系统设计基础》第七周学习总结
查看>>