新网创想网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
1,创建table的时候就使用utf8编码
10年品牌的成都网站建设公司,数千家企业网站设计经验.价格合理,可准确把握网页设计诉求.提供定制网站建设、商城网站定制开发、小程序设计、响应式网站建设等服务,我们设计的作品屡获殊荣,是您值得信赖的专业网站建设公司。
举个例子:
在每次创建表的时候都在最后加上 character set = utf8 就可以很好的支持中文。
2,修改已经有的table的编码
当使用默认编码创建了一个table的时候,是不能支持中文的,这时候使用如下语句对table_name进行修改:
此后再往这个table插入中文的时候,就可以正常存储和读取了,但不知道为什么之前的乱码还是不能纠正,只能新插入的数据没有问题。
[注意] 我google了一下,有些地方说这个命令也行,但是我测试以后并不行
alter table table_name charset=utf8; #这个语句并没有让table_name支持中文
字符编码不对 就会这样了 你在建数据库的时候 最好加上这样一句
create database tea default character set utf8 collate utf8_general_ci;
set names 'utf8';
这是对数据库默认字符的设置 以后对数据库的操作都会使用utf8的字符编码
在你的程序里 也要适当的对字符进行处理 这要根据的你程序定 不一样的程序修改的形式不一样
像你以前在命令窗口下使用MySQL无法插入中文就是典型的字符不对造成的 你在对数据库操作之前 最好在命令窗口设置一下操作时的编码
例如 setchar utf8;
这样插入的时候就不会插不进去了
1、创建测试表,
create table test_zw(id number, v_date date);
2、插入测试数据
insert into test_zw values(1,20190101);
insert into test_zw values(2,20190102);
insert into test_zw values(3,20190103);
insert into test_zw values(4,20190104);
3、查询表中记录,select t.* from test_zw t;
4、编写sql,将v_date字段翻译为中文'日期',select t.*, V_DATE AS '日期' from test_zw t;
方法一:
在mysql 的安装目录下的my.ini文件里的默认编码有问题,将my.ini文件的这两处的默认编码
==========================================
[mysql]
default-character-set=utf8 ------
==========================================
[mysqld]
# The TCP/IP Port the MySQL Server will listen on
port=3306
#Path to installation directory. All paths are usually resolved relative to this.
basedir="C:/Program Files/MySQL/MySQL Server 5.0/"
#Path to the database root
datadir="C:/Program Files/MySQL/MySQL Server 5.0/Data/"
# The default character set that will be used when a new schema or table is
# created and no character set is defined
default-character-set=utf8 ------
===========================================
箭头所指的地方确保为utf8(注意不是utf-8),navicat 里的使用的是mysql字符集(此时不用再选择utf-8编码), 问题才得以解决!
第二种方法:
选择连接属性,切换到高级选项卡,去掉“使用mysql字符集”前的对勾,在编码里直接输入,注意 不是选择 ---- 而是 直接输入 UTF8