“蔻蔻橘子酒”通过精心收集,向本站投稿了10篇Linux下MySQL 5.5中文乱码解决方法linux操作系统,这里小编给大家分享一些Linux下MySQL 5.5中文乱码解决方法linux操作系统,方便大家学习。
- 目录
篇1:Linux下MySQL 5.5中文乱码解决方法linux操作系统
根据我的经验中文乱码一般是编码问题,我们只要在linux中把mysql的字符编码进行修改即可了,我们先把修改字符集编码为UTF8试一下,
分析问题排查 登录MySQL查看用SHOW VARIABLES LIKE ‘character%’;
character_set_database和character_set_server的默认字符集还是latin1。
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
解决方法
修改mysql的my.cnf文件中的字符集键值
1、在[client]字段里加入default-character-set=utf8,如下:
代码如下复制代码[client]
port = 3306
socket = /var/lib/mysql/mysql.sock
default-character-set=utf8
2、在[mysqld]字段里加入character-set-server=utf8,如下:
代码如下复制代码[mysqld]
port = 3306
socket = /var/lib/mysql/mysql.sock
character-set-server=utf8
3、在[mysql]字段里加入default-character-set=utf8,如下:
代码如下复制代码[mysql]
no-auto-rehash
default-character-set=utf8
修改完成后,service mysql restart重启mysql服务就生效
解决办法二
修改MySql服务器各个数据库的字符集
如果在设置服务器字符集之前,存在了数据库,
需要更改数据库的字符集:
代码如下复制代码use datatable_name;
alter database character set gbk;
在程序查询写入时操作
例子1是通过php直接插入数据:
a.php
代码如下复制代码mysql_connect('localhost','user','password');
mysql_select_db('my_db');
//请注意,这步很关键,如果没有这步,所有的数据读写都会不正确的
//它的作用是设置本次数据库联接过程中,数据传输的默认字符集
mysql_query(“set names utf8;”);
//必须将gb2312(本地编码)转换成utf-8,也可以使用iconv函数
mysql_query(mb_convet_encoding(“insert into my_table values('测试');”, “utf-8”, “gb2312”));
?>
例子是通过页面提交插入数据2:
b.php
代码如下复制代码//输出本页编码为utf-8
header(“content-type:text/html; charset=utf-8”);
mysql_connect('localhost','user','password');
mysql_select_db('my_db');
if(isset($_REQUEST['name'))
{
//由于上面已经指定本页字符集为utf-8了,因此无需转换编码
mysql_query(sprintf(“insert into my_table values('%s');”, $_REQUEST['name']));
}
$q = mysql_query(“select * from my_table”);
while($r = mysql_fetch_row($q))
{
print_r($r);
}
?>
篇2:Linux php 中文乱码解决方法linux操作系统
php 中文乱码导致的原因有很多如果是linux中可能是字符编码设置问题,如果是页面编码乱码我们可能是页面编码问题,解决办法也很简单,下面我来总结一下,
Linux php 中文乱码
在ubuntu下php网页输出乱码,在不涉及数据库编码的情况下:
修改“/etc/php5/apache2/php.ini”将
代码如下复制代码default_charset = “iso-8859-1”
修改为
default_charset = “utf-8”
然后重启apache:
代码如下复制代码sudo /etc/init.d/apache2 restart
php mysql中文乱码
一般来说出于编码兼容考虑大多的页面都将页面字符集定义为utf-8
代码如下复制代码这时候要正常显示中文需要转化一下编码方式,比如
代码如下复制代码echo iconv(“GB2312”,“UTF-8”,'中文');
就不会乱码了
还有其他方法,比如
在php的echo前面加入
代码如下复制代码header(“Content-Type:text/html;charset=gb2312”);
当然简体中文页面也可以干脆地,
把
代码如下复制代码中的UTF-8改成gb2312
代码如下复制代码mysql_query('SET NAMES UTF8');
接下来的就是查出数据或者修改,增加咯
?>
篇3:linux下mysql中文乱码(中文问号)解决办法linux操作系统
今天发现我mysql插入中文时老出现????号了,但保存英文是没有问题的,下面我来给各位同学介绍一下linux下mysql中文乱码解决方法,
linux下则需要修改/etc/my.cnf,在[mysqld]下加入default-character-set = utf8,[client]下加入default-character-set = utf8,在[mysql]字段里加入default-character-set=utf8
实现:
1.查看原编码
代码如下复制代码mysql>show variables like 'character%'; //执行编码显示,可以看到默认是latin1+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
2.修改/etc/my.cnf,分别在[client],[mysqld],[mysql]字段里添加default-character-set=utf8。注意[mysqld]字段与[mysql]字段是有区别的。这点在网上没人反馈过。
# vim /etc/my.cnf //添加default-character-set=utf8
代码如下复制代码[client]
port = 3306
socket = /var/lib/mysql/mysql.sock
default-character-set=utf8
[mysqld]
port = 3306
socket = /var/lib/mysql/mysql.sock
character-set-server=utf8
[mysql]
no-auto-rehash
default-character-set=utf8修改完成后,service mysql restart重启mysql服务器,使用SHOW VARIABLES LIKE ‘character%’;查看,发现数据库编码全已改成utf8
代码如下复制代码mysql>show variables like 'character%';+--------------------------+----------------------------------------+
| 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/ |
+--------------------------+----------------------------------------+
3.如果上面的都修改了还乱码,那剩下问题就一定在connection连接层上,
解决方法是在发送查询前执行一下下面这句(直接写在SQL文件的最前面):
代码如下复制代码SET NAMES ‘utf8′;
它相当于以下三指令:
代码如下复制代码SET character_set_client = utf8;SET character_set_results = utf8;
SET character_set_connection = utf8;
附录:
朋友的一个站点转到我这边。导入mysql时,mysql还是latin的编码,因此,虽然按上面的步骤,在/etc/my.cnf文件中[client],[mysqld],[mysql]字段里添加default-character-set=utf8,但站点部分中文是乱码。在将mysql编辑改为utf8再重新导入数据库后,就正常了。
估计是mysql是latin编码是,导入数据时,因为mysql无法识别,直接将数据保存成了???这种乱码的形式了
篇4:LINUX下ZIP解压文件显示乱码解决方法linux操作系统
有很多朋友都会碰到在linux中解压ZIP文件显示乱码了,下面我来介绍如何解决ZIP解压文件显示乱码这个问题,有需要的朋友可参考,
解决办法
修改系统默认编码为中文
代码如下复制代码vim /etc/sysconfig/i18n
删除里面然后添加如下内容
代码如下复制代码LANG=zh_CN.GBK LANGUAGE=“zh_CN:zh:en_US:en” GST_ID3_TAG_RNCODING=GBK LC_CTYLE=zh_CN.GBK LC_ALL=“zh_CN.GBK”使用7z解压即可解决:7z x test.zip
也可以使用:jar xvf test.zip
安装7Z软件方法
安装7Z软件
32位CentOS执行下面命令:
代码如下复制代码wget -c packages.sw.be/p7zip/p7zip-9.13-1.el5.rf.i386.rpm
wget -c packages.sw.be/p7zip/p7zip-plugins-9.13-1.el5.rf.i386.rpm
rpm -ivh p7zip-9.13-1.el5.rf.i386.rpm
rpm -ivh p7zip-plugins-9.13-1.el5.rf.i386.rpm
64位CentOS执行下面命令:
代码如下复制代码wget -c packages.sw.be/p7zip/p7zip-9.13-1.el5.rf.x86_64.rpm
wget -c packages.sw.be/p7zip/p7zip-plugins-9.13-1.el5.rf.x86_64.rpm
rpm -ivh p7zip-9.13-1.el5.rf.x86_64.rpm
rpm -ivh p7zip-plugins-9.13-1.el5.rf.x86_64.rpm
注意了上面写了32位系统与64位系统哦,大家可根据自己的系统来选择方法,查看
1)
代码如下复制代码[root@localhost ~]# cat /proc/version
Linux version 2.6.18-194.el5 (mockbuild@builder10.CentOS.org) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-48)) #1 SMP Fri Apr 2 14:58:14 EDT 2010
2)
代码如下复制代码[root@localhost ~]# uname -a
Linux localhost.localdomain 2.6.18-194.el5 #1 SMP Fri Apr 2 14:58:14 EDT 2010 x86_64 x86_64 x86_64 GNU/Linux
3)
代码如下复制代码[root@localhost ~]# uname -r
2.6.18-194.el5
篇5:Win7中文显示乱码的解决方法
上次有一个软件里的读取数据的中文内容都是乱码,也没注意以为是软件问题,最近发现很多软件的部分中文都有显示乱码的现象,网上发现都是英文版系统出现这种问题,但是自己的是中文版系统。遂尝试在语音设置里把所有语言选项改成了香港,就好了。昨天Windows Update后,发现很多软件的中文又显示成方块了,遂又将非Unicode语言调成了香港,好了,再换回中国,没有乱码了。想来应该是系统更新之后,Unicode语言选项被其他参数覆盖,导致使用非Unicode字符编码的程序显示乱码,只要重新切换下Unicode语言选项就能解决了,
修复步骤图解:
1.点击开始菜单图标并单击打开控制面板。
2.在区域和语言设置-管理中,选择更改显示语言。 3.选择管理标签,并点击更改系统区域设置。 4.将非Unicode语言更改为简体中文即可可以正常显示了。篇6:Ubuntu下使用Wine出现中文乱码的解决方法
说明:本人使用的是最新的ubuntu11.10版本,Wine是1.3版本,
wine的乱码是因为字体关联不正确造成的,在解决的时候需要修改注册表的键值,在Ubuntu中安装了wine如果显示乱码可以通过修改注册表关联来解决。下面是我刚刚修改成功使用的步骤:hanwangtx.com
================================================================================================
1.使用wine打开福昕阅读器FoxitReader(或者通过其他方法打开wine),然后点击“打开pdf文件”(为什么要这样做呢?因为这样子可以看到ubuntu的虚拟C盘),会弹出一个框。接着在这个框内在把真正windows系统(本人用Win7)中的c:\windows\Fonts\simsun.ttc 拷到用wine菜单中 打开的虚拟c盘的同样位置,即虚拟的c:\windows\Fonts位置。(这里就是为了让wine能够关联存在的/正确的字体)www.hanwangtx.com
================================================================================================
2.在终端输入命令“gedit .wine/system.reg”打开.wine/system.reg配置文件
(这里一定要使用 gedit 或其他支持 gb2312/utf8 编码的编辑器修改这些文件,否则文件中的中文可能变乱码)
================================================================================================
3.进行编辑
(1)搜索: LogPixels
找到的行应该是:[System\\CurrentControlSet\\Hardware Profiles\\Current\\Software\\Fonts]
将其中的:
“LogPixels”=dword:00000060
改为:
“LogPixels”=dword:00000070
(这里改的是字宽)
(2)搜索: FontSubstitutes
找到的行应该是:[Software\\Microsoft\\Windows NT\\CurrentVersion\\FontSubstitutes]
将其中的:
“MS Shell Dlg”=”Tahoma”
“MS Shell Dlg 2″=”Tahoma”
改为:
“MS Shell Dlg”=”SimSun”
“MS Shell Dlg 2″=”SimSun”
保存退出,
================================================================================================
重新打开wine,用wine打开福昕阅读器FoxitReader,看到菜单子项显示正常的中文字体,打开pdf文件也显示正常。
哈哈,搞定~~~
篇7:ubuntu 命令行中文乱码问题的解决方法
首先...我说的命令行是指Ctrl+Alt+F1~F6开启的纯命令行模式 不是在X Window里打开的终端...
如果你遇到的是终端里无法显示中文这篇文里的方法基本对你没用....可以跳过了~
言归正传 纯命令行中中文无法显示
导致的原因是安装过程中选择了中文,所以系统默认配置也设置成了中文,改成英文即可,
解决方法1:学好英文..把环境变量设置为英文....(别抽我..)
修改/etc/default/locale
sudo vim /etc/default/locale1
修改默认的
LANG=zh_CN.UTF-8
LANGUAGE=zh_CN:zh
为:
LANG=“en_US.UTF-8”
LANGUAGE=“en_US:en”
存盘退出
然后:
sudo reboot
再然后
env 或者 locale 查看修改后的结果 就可以了...
解决方法2:这才是我想说的... 安装个zhcon就可以了...
终端或者命令行里输入
sudo apt-get install zhcon
等安装完即可~
运行的时候记得要加载vgz驱动和utf8支持 否则会黑屏...
并且只能在纯命令行里运行 在终端运行会出错
所以你的命令应该是zhcon --utf8 --drv=vga
如果嫌每次都要输入这么多太麻烦可以在~/.bashrc里面加一个别名
sudo vim ~/.bashrc
打开后在里面加入一行
alias zhcon=‘zhcon --utf8 --drv=vga‘
保存退出
这样每次进入命令行后直接运行zhcon即可 不用担 屏问题
zhcon中支持中文显示也支持中文输入法 由于热键冲突问题暂时我只知道Ctrl+ space切换到全拼输入法是
可以用的 多多少少解决了点中文目录/文件名的问题了
篇8:ubuntu系统下gedit出现中文乱码的两种解决方法
ubuntu gedit中文乱码看起来很烦人,本文提供两种解决途径,终端命令行途径或者图形界面操作途径,其实原理都是增加编码类型,问题显示如下图,查看文档内容,发现乱码
方法一:终端途径1、打开终端
2、在终端中输入下面的内容,回车复制内容到剪贴板
gconftool-2 --set --type=list --list-type=string /apps/gedit-2/preferences/encodings/auto_detected “[UTF-8,CURRENT,GB18030,BIG5-HKSCS,UTF-16]”
方法二:图形界面途径1、同时按住 Alt-F2,打开“Run Application”窗口
2、输入“gconf-editor”,点击“Run“,进入Configuration Editor界面 3、点击左边的”+“号找到 /apps/gedit-2/preferences/encodings,并单击 4、右键auto_detected,点击“Edit Key” 5、点击“Add”,在New list value处输入“GB18030”,点击OK 6、选中列表最下面的“GB18030”,点击右边的“Up”,直到“GB18030”移动到列表的最上方 7、点击OK关闭Configuration Editor 8、再次查看文档内容,乱码消失 注意事项:命令行的命令不要输入错误,ubuntu系统下gedit出现中文乱码的两种解决方法
,篇9:Linux下mysql中文乱码问题
安装完的MySQL的默认字符集为 latin1 ,为了要将其字符集改为用户所需要的(比如utf8),就必须改其相关的配置文件;由于linux下MySQL的默认安装目录分布在不同的文件下;不像windows一样放在同一目录下,只需修改其中的my.ini文件,重起后就生效了;所以先来看看linux下MySQL的数据库文件、配置文件和命令文件分别在不同的目录 :
1、数据库目录,其所创建的数据库文件都在该目录下
/var/lib/mysql/
2、配置文件 (mysql.server命令及配置文件所在地)
/usr/share/mysql
3、相关命令(如mysql mysqladmin等)
/usr/bin
4、启动脚本(如mysql启动命令)
/etc/rc.d/init.d/
查看默认字符集
#mysql -u root - p
#(输入密码)
mysql>show variables like 'character_set%';
+--------------------------+----------------------------+
| Variable_name| Value |
+--------------------------+----------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
修改字符集修改 /etc/my.cnf文件
#/etc/my.cnf[client]default-character-set=utf8[mysqld]datadir=/var/lib/mysqlsocket=/var/lib/mysql/mysql.sockuser=mysql# Disabling symbolic-links is recommended to prevent assorted security riskssymbolic-links=0#default-character-set=utf8character-set-server=utf8init_connect='SET NAMES utf8'[mysql]no-auto-rehashdefault-character-set=utf8[mysqld_safe]log-error=/var/log/mysqld.logpid-file=/var/run/mysqld/mysqld.pid
切记:在mysqld中加入的是character-set-server=utf8 而不是 default-character-set=utf8
否则会报:Starting MySQL...The server quit without updating PID file [失败]lib/mysql/localhost.localdomain.pid).异常
重起MySQL服务器,使其设置的内容生效
#/etc/init.d/mysql restart
篇10:解决centos5.5 中文乱码方法总结linux操作系统
今天自己在使用centos5时发现中文乱码了,后来找了一些解决解决centos5.5 中文乱码方法,下面我总结一下这些解决中文乱码的问题,各位同学可参考,
今天用vmware安装centos 5.5 一路跑完,发现中文全是小方框,特以记录:
1.先下载中文字体包
1 #yum install fonts-chinese.noarch
2 # yum install fonts-ISO8859-2.noarch
2.修改/etc/sysconfig/i18n文件
#LANG=“en_US.UTF-8”
为
LANG=“zh_CN.GB18030”
重启后还是显示乱码,很是郁闷,后来发现是缺少中文字体(我们可百度去下载一个字体)
网上有的说七步,其实只要两步:
代码如下复制代码tar zxvf wqy-bitmapsong-bdf-1.0.0-RC1.tar.gzsudomkdir - p /usr/share/fonts/wenquanyi/
sudo mv wqy-bitmapsong /usr/share/fonts/wenquanyi
然后在/etc/fonts/fonts.conf的前添加:
代码如下复制代码最后别忘了 执行 fc-cache -fv 更新缓存。
但我安装了字体还是显示乱码啊,接着搜索,网站有人分析CentOs 5.5后无法显中文(中文乱码) 原因如下
症状:
在使用CentOS 系统时,安装的时候可能你会遇到英文的CentOS系统,在这中情况下安装CentOS系统时是默认安装(即英文)。安装完毕后,上网出现的却是中文乱码。
解决方法:
到CentOs资源网站上去找fonts-chinese-3.02-12.el5.noarch.rpm(中文字体包) 和fonts-ISO8859-2-75dpi-1.0-17.1.noarch.rpm (字体显示包)
以下是5.5版本的包地址(我安装的是5.5 i386的)
代码如下复制代码ftp://ftp.muug.mb.ca/mirror/centos/5.5/os/i386/CentOS/fonts-chinese-3.02-12.el5.noarch.rpm
ftp://ftp.muug.mb.ca/mirror/centos/5.5/os/i386/CentOS/fonts-ISO8859-2-75dpi-1.0-17.1.noarch.rpm
若你的是其它版本的,请 ftp://ftp.muug.mb.ca/mirror/centos/这下面找吧。
下载后,在命令行安装:
代码如下复制代码#rpm -ivh XXXX ( XXXX 代表上面那两个包的全名, rpm 不会用的就去google吧)CentOS系统安装完成后,重新启动即可。
终端、gedit 显示乱码
代码如下复制代码#vi /etc/sysconfig/i18n
将LANG=“en_US.UTF-8”
SYSFONT=“latarcyrheb-sun16”
修改原内容为
LANG=“zh_CN.GB18030”
LANGUAGE=“zh_CN.GB18030:zh_CN.GB2312:zh_CN”
SUPPORTED=“zh_CN.UTF-8:zh_CN:zh:en_US.UTF-8:en_US:en”
SYSFONT=“lat0-sun16”
用 yum 安装中文字体
代码如下复制代码#yum install fonts-chinese.noarchsystem -> logout 注销
重新登录CentOS系统时,你会发现,所有界面已从英文变成中文,
在终端输入 date 命令测试
#date
在 ssh , telnet 终端中文显示乱码解决办法
代码如下复制代码#vi /etc/sysconfig/i18n将原内容 LANG=“en_US.UTF-8”
SYSFONT=“latarcyrheb-sun16”
修改为
LANG=“zh_CN.GB18030”
LANGUAGE=“zh_CN.GB18030:zh_CN.GB2312:zh_CN”
SUPPORTED=“zh_CN.UTF-8:zh_CN:zh:en_US.UTF-8:en_US:en”
SYSFONT=“lat0-sun16”
用 yum 安装中文字体
#yum install fonts-chinese.noarch
断开 ssh ,重新连
在终端输入 date 命令测试
#date
顺便介绍一下Linux中文乱码
方法一修改/root/.bash_profile文件,增加
代码如下复制代码export LANG=zh_CN.GB18030对于其他用户,也必须相应修改该文件使用该方法时putty能显示中文,但桌面系统是英文,而且所有的网页中文显示还是乱码
方法二:
引用:
修改/etc/sysconfig/i18n文件
代码如下复制代码#LANG=“en_US.UTF-8”
#SUPPORTED=“en_US.UTF-8:en_US:en”
#SYSFONT=“latarcyrheb-sun16”
改为
LANG=“zh_CN.GB18030”
LANGUAGE=“zh_CN.GB18030:zh_CN.GB2312:zh_CN”
SUPPORTED=“zh_CN.GB18030:zh_CN:zh”
SYSFONT=“lat0-sun16”
SYSFONTACM=“8859-15”
★ Python字符串的encode与decode研究心得乱码问题解决方法
★ Linux下修改Mysql最大并发连接数 linux操作系统
★ win xp操作系统下 防火墙经典使用指南Windows安全
Linux下MySQL 5.5中文乱码解决方法linux操作系统(精选10篇)




