博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MySql 中文乱码处理
阅读量:5227 次
发布时间:2019-06-14

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

通过MySql.Data.dll向MySql发生Sql时如果sql语句中存在中文,那么发送的MySql服务器时就会变成乱码。

因为MySQL处理连接时,外部连接发送过来的SQL请求会根据以下顺序进行转换:

character_set_client           //客户连接所采用的字符集

|
character_set_connection  //MySQL连接字符集
|
character_set_database    //数据库所采用的字符集(表,列)
|
character_set_results        //客户机显示所采用的字符集
产生乱码的根本原因在于:
1.客户机没有正确地设置client字符集,导致原先的SQL语句被转换成connection所指字符集,而这种转换,是会丢失信息的,如果client是utf8格式,那么如果转换成gb2312格式,这其中必定会丢失信息,反之则不会丢失。一定要保证connection的字符集大于client字符集才能保证转换不丢失信息。
2. 数据库字体没有设置正确,如果数据库字体设置不正确,那么connection字符集转换成database字符集照样丢失编码,原因跟上面一样。
解决办法:

1. 将服务端mysql.ini 中default-character-set设置为utf8。

default-character-set=utf8

2. 在带中文的Sql语句前加上

set names 'utf8';

这样就不会出现乱码了。

转载于:https://www.cnblogs.com/philzhou/archive/2013/04/23/3038884.html

你可能感兴趣的文章
常用正则表达式大全
查看>>
Docker,win10
查看>>
JavaScript中undefined和not defined 的区别
查看>>
yii框架学习(一)
查看>>
JSTL标签与EL表达式之间的微妙关系
查看>>
【hdu6051】If the starlight never fade
查看>>
Android开源项目发现---Spinner选择器与日历选择器篇(持续更新)
查看>>
RxJava开发精要8 – 与REST无缝结合-RxJava和Retrofit
查看>>
Java常用数学类和BigDecimal
查看>>
Spring -13 -Spring 中常用注解总结
查看>>
CentOS yum update 与 yum upgrade 区别
查看>>
[51单片机] HC-SR04超声波测距仪 基础代码
查看>>
1091 N-自守数
查看>>
写给程序员的 10不该
查看>>
兼容所有浏览器的实时监听输入的解决方案(转)
查看>>
OOP、AOP 、IoC和DI、ORM 概念
查看>>
Android:让Link始终保持在程序的WebView中跳转
查看>>
音视频采集
查看>>
java实现简单的单点登录
查看>>
[OpenGL学习] 缓冲区
查看>>