首页 | 资讯动态 | linux基础 | 系统管理 | 网络管理 | 编程开发 | linux数据库 | 服务器技术 | linux相关 | linux认证 | 嵌入式 | 下载中心 | 专题 | linux招聘 | HR | 镜像
OKLinux中文技术站
·设为首页
·加入收藏
·联系我们
系统管理: 中文环境 系统管理 桌面应用 内核技术 | Linux基础: 基础入门 安装配置 常用命令 经验技巧 软件应用 | Linux数据库: Mysql Postgre Oracle DB2 Sybase other
网络管理: 网络安全 网络应用 Linux服务器 环境配置 黑客安全 | 编程开发: PHP CC++ Python Perl Shell 嵌入式开发 java jsp | PHP技术: PHP基础 PHP技巧 PHP应用 PHP文摘
搜索中心 Linux招聘 Linux专题 Apache | Linux相关: 硬件相关 Linux解决方案 Linux认证 企业应用 其它Unix | 相关下载: 资料下载 参考手册 开发工具 服务器类 软路由 其它
 技术搜索:
会员中心 注册会员 高级搜索  
  → 当前位置:首页>linux数据库>其他>正文

MySQL中文乱码解决方案集锦

http://www.oklinux.cn  2008-10-18  linuxidc   会员收藏  游客收藏  【 】 
您查看的文章来源于http://www.oklinux.cn

整理一些MySQL中文乱码解决方案,比较实用。

在使用MySQL时,插入中文字符,经常会出现乱码,中文全被用?代替。

出现这种情况的原因,多是字符集不匹配造成的。

在MySQL中,如果使用缺省的字符集,在建库、建表时,默认使用的是latin1字符集,为ISO 8859-1西欧字符集。

插入中文字符时,与之不匹配,就会出现乱码。

本人使用的是MySQL 5.0版,并用C#操作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.建立数据库是一般的语句: create database dbname;

2.在库中建表时语句为: create table tbname(..........)engine=MyISAM character set gbk collate gbk_chinese_ci;

3.程序中连接数据库的Connection对象需要写成Connection con = DriverManaager.getConnection("jdbc:mysql://...user=..&password=...&useUnicode=true&characterEncoding=gbk");

4.若在终端下用mysql命令向数据库插入数据,则在进入mysql时的命令写成:#mysql --default-character-set=gbk -u ... -p

5.在jsp页面的编码设置为utf-8.

-------------------------------

我找到一个方法好像可以解决这个问题了

在安装mysql server的时候,无论是选择gb2312还是utf-8,都没有关系,这些字符集在phpMyAdmin中都可以很好的工作,主要是自己的脚本要正确的显示中文,可以在php脚本中,连接数据库之后,正式的数据查询提交之前执行下面的语句:

$SetCharacterSetSql = "SET NAMES '自己使用的字符集'";

$Recordset1 = mysql_query($SetCharacterSetSql, $conn_Resource) or die(mysql_error());

然后再执行自己的查询语句,得到的结果就是正确的了。刚刚试了gb2312和utf-8,都没有问题。


上一篇:从商业策略角度说,微软现在出手是情非得已   下一篇:袁萌:盗版者是微软的大敌,也是Linux的大敌

收藏于收藏夹】 【评论】 【推荐】 【打印】 【关闭
相关文档
·Linux系统下启动MySQL的命令及相关知识
·mysql_safe启动选项
·Ubuntu Linux下编译PostgreSQL 8.3.4学习体会
·Linux下的主要数据库简介
·怎样修护MySQL数据表
·Fedora 9.0下安装MySQL6.0
·Linux下安装Informix数据库
·MySQL导入导出.sql文件步骤
·Ubuntu下修改MySQL默认数据库编码
·Linux下解决sqlplus乱码问题
·MySQL的#1406 - Data too long for column错误解决方
·Linux环境下初涉MySQL
·Linux下安装Oracle客户端
·Debian下MySQL安装经验分享
·Linux平台下从源码编译安装MySQL的步骤
·SUSE Linux环境为DB2手动建库
发表评论
密码: 匿名评论
评论内容:

(不超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规)
 
  最新文档
·Oracle 10g for solaris准备工作和实例
·Oracle主键的设置
·Oracle查询表、视图、序列等信息查询
·Oracle笔记之简单查询、限定查询和排序
·Oracle物理结构概述
·Oracle中nul()函数
·Oracle数据库归档模式的切换
·Oracle 10g 编程艺术
·在RadHat 5上安装Oracle 10g
·Oracle和MySQL对比
·采用Oracle的dbms_obfuscation_toolkit
·Oracle中的Raw类型解释
  阅读排行
·Oracle面试题及答案整理
·Linux下安装Oracle数据库完整笔记
·MySQL导入导出.sql文件步骤
·Oracle10g RAC for Linux配置全过程
·Oracle建表过程初学
·Linux平台下配置MySQL主从复制
·Linux系统下启动MySQL的命令及相关知识
·Oracle 建立临时表语法及使用技巧
·Oracle数据库里查看表空间使用状况
·Linux下Oracle sqlplus中文显示乱码的
·Linux下安装Oracle客户端
·MySQL服务器上添加一个允许远程访问的
·手工配置Oracle 10G Enterprise Manage
·Linux平台下启动oracle 11g EM控制台
·关于MySQL事务处理学习
网摘收藏: