Heim >Datenbank >MySQL-Tutorial >ubuntu mysql客户端emma中文乱码问题解决_MySQL

ubuntu mysql客户端emma中文乱码问题解决_MySQL

WBOY
WBOYOriginal
2016-06-01 13:39:08946Durchsuche

Ubuntu

bitsCN.com


ubuntu mysql客户端emma中文乱码问题解决

 

emma默认用apt-get 安装的话,emma是不支持中文的,配置文件或直接修改emma程序源文件(python)。

apt-get安装emma

sudo apt-get install emma  

如果你已经安装完毕并且运行过emma,程序就会创建 ~/.emma/emmarc文件,保存配置。所以可以更改这里的配置文件,或者像下面直接修改emma的python源文件。

vim ~/.emma/emmarc   

找到

db_encoding=latin1  

改为

db_encoding=utf8  

重新运行emma,此时发现还是乱码,在执行所有的sql语句之前加入这条sql语句,

set names utf8  

按ctrl+enter执行之后,ok!

     

但每次新用户都要改配置文件,以及执行新sql前都加这个语句,岂不是很费力,直接修改emma的源文件,来实现,新创建的emmrc配置文件就是utf8,和当选择数据库时,自动的执行“set names utf8” 语句。

 

ubuntu的apt-get 安装emma是在/usr/share/emma目录下面。

cd /usr/share/emma/emmalib  

sudo vim __init__.py  

找到

"db_encoding": "latin1"  

改为

"db_encoding": "utf8"  

保存退出。以后新创建的配置文件默认就会是utf8的解码了,我想在连接数据之后就执行 “set names utf8” 语句,所以

sudo vim /usr/share/emma/emmalib/mysql_host.py  

跳到155行左右的_use_db(self, name, do_query=True)函数哪里,改成如下

def _use_db(self, name, do_query=True):  

        if self.current_db and name == self.current_db.name: return  

        if do_query:   

                self.query("use `%s`" % name, False)  

                self.query("set names utf8",  False)  

        try:  

                self.current_db = self.databases[name]  

        except KeyError:  

                print "Warning: used an unknown database %r! please refresh host!/n%s" % (name, "".join(traceback.format_stack()))

 

bitsCN.com
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn