ubuntu mysql emma中文亂碼問題解決
阿新 • • 發佈:2019-02-19
ubuntu mysql emma中文亂碼問題解決
emma預設用apt-get 安裝的話,emma是不支援中文的,配置檔案或直接修改emma程式原始檔(python)。
apt-get安裝emma
sudo apt-get install emma
ubuntu的apt-get 安裝emma是在/usr/share/emma目錄下面。
cd /usr/share/emma/emmalib
sudo vim __init__.py
找到
"db_encoding": "latin1"
改為
"db_encoding": "utf8"
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()))
emma預設用apt-get 安裝的話,emma是不支援中文的,配置檔案或直接修改emma程式原始檔(python)。
apt-get安裝emma
sudo apt-get install emma
ubuntu的apt-get 安裝emma是在/usr/share/emma目錄下面。
cd /usr/share/emma/emmalib
sudo vim __init__.py
找到
"db_encoding": "latin1"
改為
"db_encoding": "utf8"
儲存退出。
如果你已經安裝完畢並且執行過emma,程式就會建立 ~/.emma/emmarc檔案,儲存配置。所以可以更改這裡的配置檔案,或者像下面直接修改emma的python原始檔。
vim ~/.emma/emmarc
找到
db_encoding=latin1
改為
db_encoding=utf8
重新執行emma,此時發現還是亂碼,在執行所有的sql語句之前加入這條sql語句,
set names utf8
但每次新使用者都要改配置檔案,以及執行新sql前都加這個語句,豈不是很費力,直接修改emma的原始檔,來實現,新建立的emmrc配置檔案就是utf8,和當選擇資料庫時,自動的執行“set names utf8” 語句。
以後新建立的配置檔案預設就會是utf8的解碼了,我想在連線資料之後就執行 “set names utf8” 語句,所以
sudo vim /usr/share/emma/emmalib/mysql_host.py
但是我下邊這一步沒執行成功,寫完之後,emma 就沒發啟動了,
跳到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()))