有关mysql数据库的编码

今天在通过表单给php提交数据,然后插入到数据库中。网页与php的编码格式均为utf-8,在插入到数据库中时也设置了$this->query("set names utf8;");

但是还是出现了在mysql中读取数据出现乱码和问号的情况。后来实在是无解,将mysql设置为gbk编码,居然能正确的显示,简直就是颠覆了三观。。至今不知道为什么。

但是在这过程中也了解到了一些有关编码的知识:

在mysql中设置mysql的编码通过修改配置文件my.ini,该文件在mysql的安装路径下。

[mysql   //客户端

default-character-set=utf8

[mysqld]   //服务器端

character-set-server=utf8

在mysql客户端下操作:

SHOW VARIABLES LIKE ‘character%‘;查看字符集

SHOW VARIABLES LIKE ‘collation_%‘;

解决乱码的方法是,在执行SQL语句之前,将MySQL以下三个系统参数设置为与服务器字符集character-set-server相同的字符集。

character_set_client:客户端的字符集。

character_set_results:结果字符集。

character_set_connection:连接字符集。

设置这三个系统参数通过向MySQL发送语句:set names utf8

即在PHP中执行:mysql_query(“set names utf8”);

时间: 2024-08-27 07:20:01

有关mysql数据库的编码的相关文章

mysql的安装、C++访问mysql数据库、编码设置问题

一.mysql的安装,这个相对简单,直接去官网下载mysql安装程序,就可以完成安装过程,网上有很多安装教程,这个没什么注意事项. 二.C++访问mysql,主要是用到mysql定义的头文件,内部定义了各种数据结构和函数,比如MYSQL,MYSQL_RES,MYSQL_ROW,mysql_real_connect等等一系列的结构和函数.这里要注意的就是将头文件及lib文件以及dll文件配置到当前开发环境来进行访问mysql数据库. 以最新的vs2013作为示例说一下配置过程.为了写的清晰点,在网

mysql数据库字符编码修改

mysql数据库字符编码修改 修改数据库的字符集mysql>use mydb mysql>alter database mydb character set utf8; 创建数据库指定数据库的字符集 mysql>create database mydb character set utf8; 通过MySQL命令行修改: mysql> set character_set_client=utf8;Query OK, 0 rows affected (0.00 sec) mysql>

Linux下修改MySQL数据库字符编码为UTF-8解决中文乱码

由于MySQL编码原因会导致数据库出现乱码. 解决办法: 修改MySQL数据库字符编码为UTF-8,UTF-8包含全世界所有国家需要用到的字符,是国际编码. 具体操作: 1.进入MySQL控制台 >mysql -uroot -p #输入密码进入 >status; #查看当前MySQL运行状态,如下图所示: 2.修改mysql配置文件 [[email protected] ~]# vi /etc/my.cnf #在[client]段增加下面代码 default-character-set=utf

如何查看和修改mysql数据库的编码

笔者网站曾经在把数据库从虚拟空间换到独立服务器上,只是上面安装的数据库编码跟我原来的不同,原来是latin1 ,当前的是GBK格式,由于编码的不同,有时候网站会出现乱码,下面简单介绍一下如何查看和修改mysql数据库的编码: 1.查看数据库编码首先查看当前使用的数据库编码,登陆数据库管理,运行语句: mysql> use testsqlDatabase changedmysql> show variables like 'character_set_database';+-----------

mysql数据库之编码重新设置

最近在使用使用mysql数据库的存储过程的时候,发现一些问题,数据库编码和表格.字段的编码不一致 导致运行的时候出现问题,错误提示:1267 - Illegal mix of collations 通过网上的一些方法解决了数据库系统本身的编码,还有边个的编码,但还是没有解决问题, 然后建表的语句导出来看看: CREATE TABLE `dev_info` ( `id` int(11) NOT NULL AUTO_INCREMENT , `dev_id` int(10) NOT NULL , `d

前端网页、php与mysql数据库字符编码(解决中文等乱码问题)

web开发中经常涉及前端网页——php——mysql之间的数据交互,当数据只有英文时通常不会有什么问题,但一旦涉及中文,三个地方的某一处字符编码不一致(如,网页使用的时gbk而mysql使用utf-8)就有可能导致乱码的出现. (注:关于字符编码请参见百度百科:http://baike.baidu.com/view/1204863.htm?fr=aladdin) 前端网页编码: 通常我们都认为可以通过<head>标签内的<meta>项(如<META http-equiv=&q

mysql的安装、C++訪问mysql数据库、编码设置问题

一.mysql的安装.这个相对简单,直接去官网下载mysql安装程序.就能够完毕安装过程,网上有非常多安装教程,这个没什么注意事项. 二.C++訪问mysql.主要是用到mysql定义的头文件,内部定义了各种数据结构和函数,比方MYSQL,MYSQL_RES,MYSQL_ROW,mysql_real_connect等等一系列的结构和函数.这里要注意的就是将头文件及lib文件以及dll文件配置到当前开发环境来进行訪问mysql数据库. 以最新的vs2013作为演示样例说一下配置过程. 为了写的清晰

更改MySQL数据库的编码为utf8mb4

原文:http://blog.csdn.net/woslx/article/details/49685111 utf-8编码可能2个字节.3个字节.4个字节的字符,但是MySQL的utf8编码只支持3字节的数据,而移动端的表情数据是4个字节的字符.如果直接往采用utf-8编码的数据库中插入表情数据,Java程序中将报SQL异常: java.sql.SQLException: Incorrect string value: '\xF0\x9F\x92\x94' for column 'name'

mysql数据库,编码错误解决

在写代码的过程中,经常会遇见,将中文字符输入到mysql数据库中,但是查看的时候,却发现,中文显示为乱码的情况,让人相当的头疼,今天正好解决了一个这样遇到的问题,所以简单总结一下: 1.首先查看数据库的字符集,命令为: show variables like 'collation_%'; show variables like 'character_set_%'; 2.修改字符集不同的设置: 3.查看表的默认字符集是否为utf8: show create table 表名: 可以查看表的默认字符