当前位置: 首页>数据库>正文

mysql oledb驱动 连接字符串 mysql 连接字符串 字符集

本方主要参考以下几个文章整理的,以便于自己记录用;

        其实,本人在xp下安装了mysql,其中在安装的时候,我都设置成了utf8的字符集;而且在建立数据库的时候,也是一样,但是问题就是:我在dos里面中文显示的都是乱码。后来查询知道了是什么回事。

        第一:我们在服务器中建立数据库、表、字段的时候,基本都是默认的字符集,一般是utf8;

        第二:用户在用户端登陆服务器时,可能用户端设备本身是gbk的字符集,这时候,就会出现匹配问题:

告诉MySQL服务器, 客户端的编码集

在传输给MySQL服务器的时候的编码集

以及期望MySQL返回的结果的编码集

                             通过使用”set names gbk″, 相当于改变以上三个变量了,就告诉服务器, 我用的是gbk编码, 我希望你也给我返回gbk编码的查询结果.MySQL中关于连接环境的字符集设置有  Client端,connection, results 通过这些参数,MySQL就知道你的客户端工具用的是什么字符集,结果集应该是什么字符集。这样MySQL就会做必要的翻译

 mysql环境下:

mysql> show variables like 'character_set%';
 +--------------------------+----------------------------------------+
 | Variable_name            | Value                                  |
 +--------------------------+----------------------------------------+
 | character_set_client     | utf8                                   | 
 | character_set_connection | utf8                                   | 
 | character_set_database   | utf8                                   | 
 | character_set_filesystem | binary                                 | 
 | character_set_results    | utf8                                   | 
 | character_set_server     | utf8                                   | 
 | character_set_system     | utf8                                   | 
 | character_sets_dir       | /usr/local/mysql/share/mysql/charsets/ | 
 +--------------------------+----------------------------------------+

 mysql> show variables like 'collation%';
 +----------------------+-----------------+
 | Variable_name        | Value           |
 +----------------------+-----------------+
 | collation_connection | utf8_general_ci | 
 | collation_database   | utf8_general_ci | 
 | collation_server     | utf8_general_ci | 
 +----------------------+-----------------+

1. 数据库表中字段的字符集设置show create table TableNameshow full columns from tableName

mysql>  show create table t1;+-------+------------------------------------
 | Table | Create Table                       
 +-------+------------------------------------
 | t1    | CREATE TABLE `t1` (
   `id` int(11) NOT NULL,
   `c1` varchar(30) DEFAULT NULL,
   PRIMARY KEY (`id`)    
 ) ENGINE=InnoDB DEFAULT CHARSET=gbk |
 +-------+------------------------------------
 1 row in set (0.00 sec) 
                         
 mysql> show full columns from t1;+-------+-------------+----------------+------+-----+-
 | Field | Type        | Collation      | Null | Key | 
 +-------+-------------+----------------+------+-----+-
 | id    | int(11)     | NULL           | NO   | PRI | 
 | c1    | varchar(30) | gbk_chinese_ci | YES  |     | 
 +-------+-------------+----------------+------+-----+-
 2 rows in set (0.00 sec)
mysql>

2. 当前联接系统参数  show variables like 'char%'

mysql>  show variables like 'char%';+--------------------------+----------------
 | Variable_name            | Value
 +--------------------------+----------------
 | character_set_client     | gbk
 | character_set_connection | gbk
 | character_set_database   | latin1
 | character_set_filesystem | binary
 | character_set_results    | gbk
 | character_set_server     | latin1
 | character_set_system     | utf8
 | character_sets_dir       | C:/Program File
 +--------------------------+----------------
 8 rows in set (0.00 sec)
mysql>

1. 中文,请确保 表中该字段的字符集为中文兼容:
 big5     | Big5 Traditional Chinese
 gb2312   | GB2312 Simplified Chinese
 gbk      | GBK Simplified Chinese
 utf8     | UTF-8 Unicode

 

2. 确保,联接参数与这个字段字符集一致,你可以用 set name 'charsetname';
 比如, set name 'gbk'; 这条命令会同时修改 character_set_client,character_set_connection,character_set_results
 (如果你的这架MySQL中都为中文,则你可以在my.ini或my.cnf中加上或修改这个参数, 参数文件修改后需重启MySQL服务)
[mysql]
default-character-set=gbk

此处参考文章为:http://gc063tzf.blog.163.com/blog/static/1121629220103254254178/


今天打开DOS窗口,想用MYsql,但是输入时有中文的,所以就切换输入法, ctrl+space组合键无论怎么也不管用。想到是不是自己电脑系统里或者什么地方有问题了,就到网上去搜索了半天,把问题给解决了,总结了一下方法:

1.看看c:windows\system32文件夹下conime.exe文件存不存在,如果有,就关掉所有命令提示符窗口,然后复制下面的命令到开始运行里执行:
reg add "HKEY_CURRENT_USER\Console" /v "LoadConIme" /d 1 /t REG_DWORD /f
 我的会出现一个设置成功的界面一闪而过,这样就ok了

2.用鼠标单击屏幕右下角输入法切换那里,选择智能ABC,嘿,居然在DOS下能输入汉字.

3. PHP 乱码, 同样 mysql_query("set name 'gbk'"); 其它API也类似。

 

4. phpmyadmin里乱码
phpMyAdmin的config.inc.php中有没有设置$cfg['DefaultCharset']='utf-8';

 

5. Windows操作系统中命令行("DOS"窗口)下。
 在你的DOS窗中的左上角标题栏片左键,属性,
 在字体中,选择“宋体”,确认
 mysql中 set names 'gbk';

 


                 


https://www.xamrdz.com/database/6mp1938651.html

相关文章: