你把gb2312设置成GBK,然后把要插入中文的字段设置成BOLB类型,试一试。
解决方案 »
- 求大神帮助,3~4张表之间数据复制问题,
- 利用游标更新表,效率问题,急!!!!
- db_lvyou_Data.MDF和db_lvyou_Log.LDF怎么在Navicat for MySQL打开
- 为什么mysql总提示错误?
- 请问MYSQL运行存储过程中生产的错误原因和解决方法,谢谢
- 请问:一个分阶段查询SQL表中数据的查询语句?
- Mysql数据库怎么实现在线进程?
- help for: MySql 的sql语法
- 一个复杂的mysql问题
- sql数据库查询语句,有大神给支招吗???
- 一个小问题 我把access导入到mysql里面,show列名 不能用好象因为是保留字吧,怎么解决呢,可以我的表名type也是保留字,可以用列
- MYSQL的换行问题???
mysql> show variables like "%char%";
+--------------------------+----------------------------------------------------
-----+
| Variable_name | Value
|
+--------------------------+----------------------------------------------------
-----+
| character_set_client | utf8
|
| character_set_connection | utf8
|
| character_set_database | utf8
|
| character_set_results | utf8
|
| character_set_server | utf8
|
| character_set_system | utf8
|
| character_sets_dir | C:\Program Files\MySQL\MySQL Server 4.1\share\chars
ets/ |
+--------------------------+----------------------------------------------------
-----+
7 rows in set (0.02 sec)
+----------------------+-----------------+
| Variable_name | Value |
+----------------------+-----------------+
| collation_connection | utf8_general_ci |
| collation_database | utf8_general_ci |
| collation_server | utf8_general_ci |
+----------------------+-----------------+
3 rows in set (0.00 sec)
ets/ |这个指你的安装目录。如果是一致的话还显示??,我就不知道为什么了,另请高明吧。
我也试过改为utf8,binary,gb2312都不可以。但是在win 下没问题。
谁知道是为什么啊???
character_set_connection
character_set_database
character_set_results
这几个都要看,还有你的field的character set,mysql会自动转换内容的编码
输出时从 field的character set => character_set_connection => character_set_results
输入时从 character_set_client => character_set_connection => field的scharacter set针对不同的client端,如mysql命令行,php程序,需要设置相应的character set (client/results)简单点的做法是 set names gbk/utf8等,相当于同时设置 character_set_client、 character_set_connection和character_set_results具体看手册的相应那章,讲得很详细
PHP5里显示一切正常,在IE里用命令添加数据也正常,但是在命令行添加数据就是乱码,在IE里读出MYSQL中文数据也是乱码,请高手帮忙看看...
首先数据库缺省字符集和应该是gbk,如果是utf8就不行(utf8不是支持汉语吗?不知道为什么)
create database test default character set gbk;
然后在插入之前运行
set names gbk;
就ok了。但是为什么使用utf8,然后运行
set names gbk,也会出错:20001:data column is too long....
不知道为什么
$conn->query("SET character_set_client = gbk;");
$conn->query("SET character_set_results = gbk;");
$conn->query("SET character_set_connection = gbk;");
gbk 可以改成其它字符集
[WinMySQLAdmin]
Server=D:/mysql/mysql/bin/mysqld-nt.exe (根据你的安装路径改变)[mysqld]
basedir=D:/mysql/mysql (根据你的安装路径改变)
datadir=D:/mysql/mysql_data/data (根据你的安装路径改变)
default-character-set=gbk (主要设置这里)[client]
default-character-set=gbk (主要设置这里)
然后启动mysql,应该问题解决!
ALTER TABLE U_R_table_name DEFAULT CHARACTER SET utf8;
------------------------------------------------------------------------
connection_url:
jdbc:mysql://host_name:3306/[database_name]?useUnicode=true&characterEncoding=utf8
我在MySQL Query Browser和Eclipse上运行都没问题 ^_^
但是还有一点大家总是容易忽略,如果用编程语言或者客户端来连接mysql的数据库,其连接或者该客户端使用的也必须是支持中文的字符集,如果是dos窗口作为客户端连接到mysql,因为dos窗口的默认字符集是gb2312,如果你的mysql使用的是utf8,那么insert语句插入后再次读出,由于经过一次转码,会显示为???,但如果这时你用utf8的客户端来看那条记录,则应该能够正确识别出来;
如果使用的是odbc连接,则不管是vc连接还是其他脚本语言进行连接,都需要在odbc连接字符串中指定使用的中文字符集;
例如,以最新的mysql-connector-odbc-3.51.12驱动来说,在配置odbc连接的时候,在connection option选项卡的Initial Statement参数处就可以配置为SET NAMES GB2312,这样,通过此odbc连接访问该数据库,写入和读取中文都不会有问题