Linux下MySQL 5.5中文乱码解决方法linux操作系统

时间:2022-12-14 05:48:43 作者:蔻蔻橘子酒 综合材料 收藏本文 下载本文

“蔻蔻橘子酒”通过精心收集,向本站投稿了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.gzsudo

mkdir - p /usr/share/fonts/wenquanyi/

sudo mv wqy-bitmapsong /usr/share/fonts/wenquanyi

然后在/etc/fonts/fonts.conf的前添加:

代码如下复制代码/usr/share/fonts/wenquanyi/wqy-bitmapsong/

最后别忘了 执行 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.noarch

system -> 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”

Win7中文显示乱码的解决方法

Windows操作系统常见安全问题解决方法

如何解决Windows 7操作系统中软件乱码问题

linux下显示中文Linux

Python字符串的encode与decode研究心得乱码问题解决方法

Linux下修改Mysql最大并发连接数 linux操作系统

win xp操作系统下 防火墙经典使用指南Windows安全

Linux系统下Mp3标签乱码问题的分析和解决

英文界面下使用中文Unix系统

Linux操作系统下的多进程编程详细解析Linux

Linux下MySQL 5.5中文乱码解决方法linux操作系统(精选10篇)

欢迎下载DOC格式的Linux下MySQL 5.5中文乱码解决方法linux操作系统,但愿能给您带来参考作用!
推荐度: 推荐 推荐 推荐 推荐 推荐
点击下载文档 文档为doc格式
点击下载本文文档