SQLSERVER访问MYSQL表中文显示成乱码
SqlServer2005中文乱码解决方法

Sql Server 2005 中文乱码解决使用SQLSERVER2005的时候常常遇到中文字符为乱码的情况,经过研究发现,设置SQL的排序规则可以解决这个问题。
1、登录服务器打开Micr osoft SQL Server Manage m entStudio。
2、在要修改的数据库上单击鼠标右键,并选择“属性”。
3、在弹出的数据库属性窗口中点击“选择页”中的“选项”。
4、将排序规则由默认的SQ L_Lat in1_G enera l_CP1_CI_A S修改为C hines e_PRC_CI_A S。
5、点击确定就O K。
varcha r修改为n varch archar修改为ncha r注:如果无法修改的话,请尝试关闭所有与此数据库的连接,实在不行的话请重启动S QL SERVER 服务。
两种方法:1:安装时不要选 Hide advice config urati on option s然后再 Collat ion design atorand order中选择 Chines e_PRC就可以了。
2:在建表时指明某个字段的语言方法 COLLAT E Chines e_PRC_CS_A S_WS示例:create tabletest(a varcha r(255) COLLAT E Chines e_PRC_CS_A S_WSNULL,b varcha r(255) COLLAT E sql_la tin1_gener al_cp1_ci_as NULL)insert test values('中文','中文')插入后字段a 为中文,b 为??sql server中文乱码30我用的是sq l server2008英文版的系统也是英文的我在里面插入数据的时候只要是中文就显示的是乱码我是直接在表里面添加数据的各位大侠帮帮忙啊满意答案浙中IT认证 11级 2010-08-26系统语言里加中文,要不然中文一定是乱码。
MySQL中文字符乱码解决

以下的文章主要介绍的是解决MySQL中文乱码的好用方案大汇总,我们大家都知道在使用MySQL数据库时,在插入中文字符的实际操作过程中,有时会出现一些乱码,例如,中文全被用?代替。
出现这种情况的原因,多是字符集不匹配造成的。
在MySQL中,如果使用缺省的字符集,在建库、建表时,默认使用的是latin1字符集,为ISO 8859-1西欧字符集。
插入中文字符时,与之不匹配,就会出现乱码。
本人使用的是MySQL 5.0版,并用C#操作MYSQL数据库,当插入中文字符时,发现显示的是MySQL中文乱码。
初步估计是字符集没有配对。
查找后,发现MSYQL默认使用的是latin1,因此将数据库的配置文件中的字符设置改为utf8,并在C#中将中文字符,转为utf8,插入后,仍为乱码。
MySQL也支持gb2312,又将MySQL的字符设置改为gb2312,C#中使用Default,重起MySQL后,操作仍然无效。
后想起,虽然将MySQL的字符集设置为gb2312或utf8,但已经建立的数据库和表,仍采用的是默认的字符集,也即仍为当初的西欧字符集,最好,只得忍痛将数据库删除,重新以gb2312字符集建立数据库和表。
再用C#插入中文字符后,一切OK。
再安装好MySQL后,可以手工或使用配置工具,将my.ini文件中的默认字符集改为gb2312,再重新建库和表时,不用再在语句中指定字符集,其默认设置也即为gb2312,可以正常显示中文字符集。
1.建立数据库是一般的语句:1.create database dbname;2.在库中建表时语句为:1.create table tbname(..........)engine=MyISAM character set gbk collate gbk_chinese_ci;3.程序中连接数据库的Connection对象需要写成1.Connection con = DriverManaager.getConnection("jdbc:mysql://.er=..&password=...&useUnicode=true&characterEncoding=gbk");4.若在终端下用mysql命令向数据库插入数据,则在进入mysql时的命令写成:1.#mysql --default-character-set=gbk -u ... -p5.在jsp页面的编码设置为utf-8.我找到一个方法好像可以MySQL中文乱码解决这个问题了在安装mysql server的时候,无论是选择gb2312还是utf-8,都没有关系,这些字符集在phpMyAdmin中都可以很好的工作,主要是自己的脚本要正确的显示中文,可以在php脚本中,连接数据库之后,正式的数据查询提交之前执行下面的语句:$SetCharacterSetSql = "SET NAMES '自己使用的字符集'";1.$Recordset1 = mysql_query($SetCharacterSetSql, $conn_Resource) or die(mysql_error());然后再执行自己的查询语句,得到的结果就是正确的了。
Mysql常见中文乱码及解决方案

Mysql常见中⽂乱码及解决⽅案
在Mysql中会经常碰到中⽂乱码问题,与oracle相⽐,不但库拥有字符集,连表,或字段都拥有⾃⼰的字符集
导致我们在查询,新增记录时出现各种各样的乱码,或者是⾃⼰的终端上没有问题,在其它终端连接就会出现问题。
常见乱码分析:
1,登录⽅式,导致的中⽂乱码:
2,操作系统语⾔集:
$ cat /etc/sysconfig/i18n
显⽰UTF-8格式,也可以使⽤:
$ echo $LANG
可以使⽤ export LANG=C 进⾏修改。
但是重新登录后,乱码依然:
3,⽂件格式导致的中⽂乱码:
此时,在执⾏SQL脚本时就会报错:
这个解决⽅案,是将⽂件修改成utf-8格式,或者在VI中修改:
:set fileencoding=utf-8
在MYSQL中,⼀个汉字占3个字节,如何避免乱码:
1,编辑⽂件时,指定与数据库相同字符集,⽐如gbk
2,在初始化数据库时,对库的字符集,表,以及字段进⾏统⼀编码设置,⽐如gbk
3,在代码中,指定字符集:
mysql_set_character_set(mysql, "utf8");
或者执⾏:
mysql_query('SET NAMES UTF8')。
MySQL中文乱码问题的解决方法

MySQL中文乱码问题的解决方法在使用MySQL数据库过程中,经常会遇到中文乱码的问题。
这是由于MySQL默认使用的字符集是Latin1,而大部分中文系统使用的是UTF-8字符集所致。
本文将介绍在MySQL中解决中文乱码问题的几种方法。
一、修改MySQL配置文件MySQL配置文件(f)是MySQL服务器的设置文件,通过修改该文件可以改变MySQL的默认字符集。
在Linux系统中,该文件通常位于/etc/mysql/f或者/etc/f。
在Windows系统中,该文件通常位于MySQL安装目录下的my.ini文件。
步骤如下:1. 找到f或my.ini文件并打开。
2. 在[mysqld]部分添加或修改以下内容:```[mysqld]character-set-server=utf8collation-server=utf8_general_ci```3. 保存文件并重启MySQL服务。
二、修改数据库、数据表、字段字符集如果修改MySQL配置文件没有解决中文乱码问题,可以尝试直接修改数据库、数据表、字段字符集。
1. 修改数据库字符集可以使用ALTER DATABASE语句修改数据库的字符集。
例如:```ALTER DATABASE database_name CHARACTER SET utf8 COLLATEutf8_general_ci;```2. 修改数据表字符集可以使用ALTER TABLE语句修改数据表的字符集。
例如:```ALTER TABLE table_name CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;```3. 修改字段字符集可以使用ALTER TABLE语句修改字段的字符集。
例如:```ALTER TABLE table_name MODIFY column_name VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci;```其中,table_name为表名,column_name为字段名。
访问MySQL数据库时中文乱码问题分析及解决

访问MySQL数据库时中文乱码问题分析及解决使用MySQL保存中文数据时,经常会遇到乱码问题。
产生乱码的原因很多,在笔者以为对MySQL的字符集处理已经很有了解的时候,使用C#编程时,竟再一次遇到了乱码。
联想到前几天一位同事在使用JDBC访问MySQL时遇到的中文乱码问题,决定对MySQL中文乱码问题的产生场景进行一次总结。
一、错误读出现象:一个已经存在数据的MySQL数据库,该数据库的数据用系统中其它软件、网页查看均正常,使用MySQLcc之类的客户端查看也正常,可是在新写的网页中总是显示乱码。
分析:其它系统都可以正常查看数据,说明数据本身是没有问题的。
在网页中显示乱码,一定是网页的编码字符集和获取到的数据的编码字符集不一至。
比如数据库的字符集是UTF 8的,而网页的字符集是gb2312的,那么网页就会把UTF8编码的字体串当作gb2312的来处理,结果产生乱码。
解决办法:在连接数据库时,设定连接字符集,使连接字符集和当前网页或客户端程序使用的字符集一致。
可以使用MySQL的Set Names指令设定连接字符集。
假设网页的字体集为gb2312。
在连接MySQL后,在连接上执行如下SQL语句:Set Names ‘gb2312’在以后所有这个连接上的查询,MySQL都会自动把数据库中的数据转换成gb2312编码格式传过来。
mysqli_query($db,"SET NAMES 'gb2312'")二、错误写入现象:一个网页或程序向一个MySQL数据库中写数据,写完后,这个网页或程序自己可以正常读取数据,而从其它客户端或网页中读取数据都是乱码。
分析:其它的正常的客户端出现乱码,说明数据库中的字符编码不对。
写数据的那个网页能正常读取,是因为写和读都用了错误的编码格式,将错就错,反而能读出正确的数据了。
比如数据库中设定的字符集为UTF8,而网页使用gb2312编码执行了插入数据的SQL,那么MySQL就会把这些gb2312的编码当成是UTF8的编码写进数据库。
mysql彻底解决输入和显示中文字段乱码问题

1、mysql中文乱码问题有两个,第一个是客户端的中文输入乱码问题,第二个是在黑窗口显示结果时乱码。
第一个问题需要设置客户端client和连接connection的编码为:GBK;
第二个问题需要设置结果显示results的编码为:GBK;
先查询现在的编码:
然后修改编码:
但是这样的改变是动态的,也就是当下一次性的,如果下次重启了数据库,其编码有会恢复为原来的样子了。
----------------------------------------彻底解决中文乱码问题------------------------------------------------------------
1、先得找到 .ini 数据库配置文件。
在Mysql 5.5版本以下的旧版本,.ini 文件可以直接在Mysql的安装目录中找到。
在Mysql 5.5及以上的新版本,.ini 文件就需要在C:\ProgramData\MySQL\MySQL Server 5.5中才能找到!
但C盘下的ProgramData目录是隐藏的,所以先选择显示隐藏项目:
修改.ini 文件中的[mysql] 下面的default-character-set = gbk
这种修改方法是静态的,不管是否重启,都有效。
怎样解决MySQL中文显示乱码

怎样解决MySQL中文显示乱码当你的MySQL返回的字符串的编码格式(字符集)与你的客户工具程序(mysql, php, query browser, ...)当前使用的字符集不同时,就会造成乱码。
MySQL中默认字符集的设置有四级:服务器级,数据库级,表级。
最终是字段级的字符集设置。
注意前三种均为默认设置,并不代码你的字段最终会使用这个字符集设置。
所以我们建议要用show create table table ; 或show full fields from tableName;来检查当前表中字段的字符集设置。
专职优化、域名注册、网站空间、虚拟主机、服务器托管、vps主机、服务器租用的中国信息港来为你做详细介绍!MySQL 中关于连接环境的字符集设置有 Client端,connection, results 通过这些参数,MySQL就知道你的客户端工具用的是什么字符集,结果集应该是什么字符集。
这样MySQL就会做必要的翻译,一旦这些参数有误,自然会导致字符串在转输过程中的转换错误。
基本上99%的乱码由些造成。
乱码后需要检查的信息。
1. 数据库表中字段的字符集设置。
show create table TableName或show full columns from tableNamemysql> 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 Chinesegb2312 | GB2312 Simplified Chinesegbk | GBK Simplified Chineseutf8 | UTF-8 Unicode2. 确保,联接参数与这个字段字符集一致,你可以用 set name 'charsetname';比如,set name 'gbk';这条命令会同时修改character_set_client,character_set_connection,character_set_results (如果你的这架MySQL中都为中文,则你可以在my.ini或f中加上或修改这个参数, 参数文件修改后需重启MySQL服务)[mysql]default-character-set=gbk3. PHP 乱码,同样 mysql_query("set name 'gbk'"); 其它API也类似。
关于Mysql中文乱码问题该如何解决(乱码问题完美解决方案)

关于Mysql中⽂乱码问题该如何解决(乱码问题完美解决⽅案)最近两天做项⽬总是被乱码问题困扰着,这不刚把mysql中⽂乱码问题解决了,下⾯⼩编把我的解决⽅案分享给⼤家,供⼤家参考,也⽅便以后⾃⼰查阅。
⾸先:⽤show variables like “%colla%”;show varables like “%char%”;这两条命令查看数据库与服务端的字符集设置如果查看出来都是gbk2312,或 gbk,那么就只能⽀持简体中⽂,繁体和⼀些特殊符号是不能插⼊的,我们只有修改字符集为UTF-8,修改⽅法如下:⽤记事本或UitraEdit打开mysql数据库安装⽬录下的my.ini⽂件打开,然后Ctrl+F搜索default-character-set,将后⾯的字符集修改为UTF8,注意要修改两个地⽅,⼀个事客户端的,⼀个是服务端的。
然后保存,重启mysql服务、、进去继续⽤show variables like “%colla%”;show varables like “%char%”;着两条语句查询⼀下字符集。
如图:到此就配置完成了。
注意:如果以前建有数据库没有删除的请⽤ show database 数据库名;和 show create table 表名;查看⼀下数据库和表的字符集是否为UTF8 ,因为修改my.ini⽂件,它不能修改原来数据库的的字符集。
在命令⾏下⾯可以⽤alter database 数据库名 character set “字符集”;命令来修改数据库字符集还有⼀点要注意的是,修改为UTF8以后,在命令⾏下⾯中⽂是乱码的,只输出到页⾯或控制台是正常的,这个问题我也上⽹查了⼀下,貌似命令⾏下⾯不⽀持UTF8,我也不太清楚。
当修改以后,在命令⾏下⾯如果要插⼊中⽂,可以在插⼊语句之前执⾏,set names gbk2312;就可以插⼊中⽂了,但是不能插⼊繁体和⼀些特殊符号。
以上就是这⼏天解决乱码的成果。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
错误描述:SQLSERVER访问MYSQL表中文显示成乱码,中文会显示成????
解决思路:用的是mysql-5.1.50-win32 与odbc3.1版本的.现在改成ODBC5·1 这样转换就没有问题SQLSERVER连接MYSQL 建立链接如下:
数据库软件与ODBC软件:mysql-5.1.50-win32与ODBC5·1(注意,odbc3.1版本,会出现乱码)MYSQL数据库情况:gmp_test
第一步:先要在MYSQL进行授权,让主机能访问MYSQL数据库,设置如下:
在mysql数据库执行,语句:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.216' IDENTIFIED BY 'yxtech' WITH GRANT OPTION;
第二步:在SQLSERVER主机,设置ODBC连接,设置如下图:
第三步:在SQL SERVER 配置连接,配置语句如下
--删除连接
exec sp_dropserver'dxmysql','droplogins'
--建立一个新连接
EXEC SP_ADDLINKEDSERVER
@server ='dxmysql', --连接名称(随意,规范就可)
@srvproduct ='MYSQL', --连接MYSQL,数据库类型,固定的
@provider ='MSDASQL', --连接MYSQL的编码,固定的
@datasrc ='my_sql' --建立的ODBC连接(第二步建立的)
--建立用户连接
EXEC sp_addlinkedsrvlogin'dxmysql','false','bi_etl','root','yxtech' --'dxmysql'为连接名称
--'bi_etl'为SQLSERVER用户,如果为NULL
--'root','yxtech' 为登录MYSQL 的用户及密码
--进行查询
select*FROM OPENQUERY(dxmysql,'select * from test1')。