excel变更字符集(修改数据表的字符集)

Exce表格网 2023-02-11 06:45 编辑:admin 86阅读

1. 修改数据表的字符集

 但是遗憾的是,很多人编译安装MySQL的时候没有指定这两个参数,大多数人更是通过二进制程序的方式安装,那么这时候MySQL的默认字符集是latin1。而这时候我们仍然可以指定MySQL的默认字符集,通过my.cnf文件增加两个参数:1.在[mysqld]下添加  default-character-set=utf8(mysql 5.5 版本添加character-set-server=utf8)2.在[client]下添加  default-character-set=utf8这样我们建数据库建表的时候就不用特别指定utf8的字符集了。配置文件里的这种写法解决了数据存储和比较的问题,但是对客户端的连接是没有作用的,客户端这时候一般需要指定utf8方式连接才能避免乱码。也就是传说总的set names命令。事实上,set names utf8命令对应的是服务器端以下几个命令:  SET character_set_client = utf8;  SET character_set_results = utf8;

2. 修改字段的字符集

关键字:字符集gbkutf8开始表W的字符集设置成了gbk,但是现在的建的表要求字符集为utf8。

于是:alter table `W` default character set utf8;或者ALTER TABLE tbl_name CONVERT TO CHARACTER SET charset_name;但是发现其中一个字段CONTENT的字符集还是gbk。于是更改mysql数据库表中某个字段的字符集,修改字段的定义:alter table `W` modify column `CONTENT` varchar(30) character set utf8 not null;

3. 修改数据表字段

1.选中数据透视表中的任意位置,然后就会看到选项卡上多了“数据透视表工具”这一项。

2.点击“分析”选项卡。

3.点击“选项”按钮,然后就会弹出“数据透视表选项”窗口了。

4.这时选择“数据”选项,然后勾选上“打开文件时刷新数据”。

5.最后点击“确定”。如果源数据有更新的话,一开始透视表是不会更新的。当关掉文档,下次再打开的时候,透视表的数据就会同步进行更新了。

4. sql修改字符集

数据库中关于字符集的种类有很多,个人建议,数据库字符集尽量使用utf8(utf-8),以使你的数据能很顺利的实现迁移,因为utf8字符集是目前最适合于实现多种不同字符集之间的转换的字符集,尽管你在命令行工具上无法正确查看数据库中的内容,我依然强烈建议使用utf8作为默认字符集.如果你想使用gb2312编码,那么建议你使用latin1作为数据表的默认字符集,这样就能直接用中文在命令行工具中插入数据,并且可以直接显示出来.而不要使用gb2312或者gbk等字符集,如果担心查询排序等问题,可以使用binary属性约束 对编程有影响的主要是客户端字符集和数据库字符集(还有一个服务器字符集,不知道干什么用的), 数据库中常用的操作就是保存数据和读取数据,在这过程中,乱不乱码和数据库字符集貌似没有什么关系。我们只要保证写入时选择的字符集和读取时选择的字符集一致,即只需保证两次操作的客户端字符集一致即可。 在MySQL的客户端上执行一次查询的过程一般是,在客户端的提示符后面输入一条SQL语句,回车,然后终端显示出查询的结果。这个过程中,只有终端和三个MySQL的系统变量指定了正确的字符集,才能保证我们将一个正确的SQL语句送到服务器,然后服务器返回正确的结果,并且在终端正确显示。 三个MySQL的系统变量是: 1. character_set_client,终端字符集,告诉Server客户端提交的SQL语句的编码格式 2. character_set_connection,连接字符集,是服务器翻译SQL语句时用到的编码格式 3. character_set_results,返回的结果集的字符集,是服务器返回结果集之前把结果集转换成的编码格式 在MySQL终端通过执行命令 show variables like ‘char%’ 可以查看这几个变量的值。这三个变量通常都设定为同一种字符集,用命令set names [charset name]就可以修改这三个变量的值。一般来说,只要你设定了能够表示你的数据的字符集,你查询的结果都可以在终端正确显示。 举个例子,使用的表t1是utf8编码,表中的字段c1继承了这个编码,表创建如下 mysql> create table t1 ( c1 text not null ) character set utf8; 用的字符是汉字“范”,gbk编码为B7 B6,utf8编码为E8 8C 83 用下面的SQL语句插入数据 mysql> insert into t1 values( ‘范’); a)如果终端设置为utf8,并且执行了 set names utf8,那么插入到数据库中的就是“范”这个字的utf8编码,这个过程中MySQL不需要做编码转换。写入数据库的内容可以通过执行 select hex( c1 ) from t1 得到数据的十六进制编码来验证。 b)如果终端设置为 utf8,并且执行了set names gbk,那么执行完这个插入操作后,写入的二进制数据是E9 91 BC,这是“汉字“锣”的utf8编码。这是因为,终端输入的“范”用的是utf8编码,而服务器以为终端发送过来的内容是gbk编码,所以在向t1表中插入的时候进行了一次gbk到utf8的转换,结果当然是错误的。 c)如果终端设置为gbk,并且执行了set names gbk,那么执行完插入操作后,写入t1的依然是“范”这个字的utf8编码。插入过程中,终端输入的是“范”的gbk编码B7 B6,服务器被告知终端发过来的SQL语句是gbk编码(由character_set_client指定),所以在插入数据前做了一次gbk到utf8的编码转换。 d)如果终端设置为gbk,并且执行了set names utf8,那么执行完插入操作后,MySQL会报出一个数据被截断的警告。实际上,输入终端的是“范”这个字符的gbk编码B7 B6,而服务器被告知客户端发过来的SQL语句是utf8编码,所以在执行过程中没有做转码,直到插入数据的时候,发现B7 B6不符合utf8的编码规则,给出了警告信息,实际插入的数据是3F 3F,也就是两个问号。 查询的时候是同样的道理,MySQL也是根据set names设定的字符集来对返回给客户端的结果集做相应的编码转换,如果转换的结果和终端显示的字符集一致,就能正确显示,如果不一致就是乱码。 结论是,只要终端的字符集和set names指定的字符集一致就可以让MySQL在处理过程中执行正确的转码并且正确地显示。 另外,如果通过程序操作MySQL数据库, 那么也需要事先执行set names命令来指定程序希望输出的字符集。比如,用程序从一个utf8编码的数据库向另外一个gbk编码的数据库进行数据迁移,在选取源数据库数据之前,需要执行set names gbk,才能取到gbk编码的数据。

5. 更改数据库字符集

由于mysql默认的字符集编码为latin ,而我们一般使用的是gbk 或者 gb2312编码所以不改过来容易造成乱码我用的是mysql 5.0 安装程序安装的 ,安装目录在C:\Program Files\MySQL\MySQL Server 5.0请到这个目录下面找到 my。ini文件修改default-character-set=latin1 为 default-character-set=gbk记住有两个地方啊 都要改最重要的一点就是修改文件前,先停止mysql服务 ,等修改后再重新启动使用dos命令 :net stop mysql 来停止服务 net start mysql 来启动然后在执行你的mysql脚本 ,一切ok! 这里你可以用discuz的sql做为例子运行!

顶一下
(0)
0%
踩一下
(0)
0%
相关评论
我要评论
点击我更换图片