1. 程式人生 > >Ubuntu 11.10 MySQL客戶端 Emma 6.0 中文亂碼解決辦法

Ubuntu 11.10 MySQL客戶端 Emma 6.0 中文亂碼解決辦法

在Linux如果使用mysql的圖形客戶端,我感覺Emma算一個好用的了。

比起mysql自己的Mysql Query Browser 要好, 而且最不能忍受的是Mysql Query Browser 在Ubuntu 11.10 會有程式崩潰現象。

相比而言emma是挺好,但是emma預設用apt-get 安裝的話,emma是不支援中文的,這個需要自己修改一下了配置檔案,或者直接修改emma程式原始檔了(emma 用python編寫的)。

apt-get安裝emma

  1. sudo apt-get install emma  

如果你已經安裝完畢並且執行過emma,程式就會建立 ~/.emma/emmarc檔案,儲存你自己的一些配置。所以可以更改這裡的配置檔案,或者像下面直接修改emma的python原始檔。

  1. vim ~/.emma/emmarc   

找到

  1. db_encoding=latin1  
改為
  1. db_encoding=utf8  
然後裡,重新執行emma,此時發現還是亂碼,不要著急,在執行所有的sql語句之前加入這條sql語句,
  1. set names utf8  
按ctrl+enter執行之後,再看看是不是已經ok了。正常顯示中文了。(這裡還有一個前提是你的資料庫都是utf8編碼的喲)

好了,但是每次新使用者都要改配置檔案,以及執行新sql前都加這個語句,豈不是很費力。而自己有很懶,並且我的資料庫大部分都是utf8的,所以直接修改emma的原始檔,來實現,新建立的emmrc配置檔案就是utf8,和當選擇資料庫時,自動的執行“set names utf8” 語句。

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

  1. cd /usr/share/emma/emmalib  
  2. sudo vim __init__.py  
找到
  1. "db_encoding": "latin1"  
改為
  1. "db_encoding": "utf8"  
儲存退出。以後新建立的配置檔案預設就會是utf8的解碼了,我想在連線資料之後就執行 “set names utf8” 語句,所以
  1. sudo vim /usr/share/emma/emmalib/mysql_host.py  
跳到155行左右的_use_db(self, name, do_query=True)函式哪裡,改成如下
  1. def
     _use_db(self, name, do_query=True):  
  2. ifself.current_db and name == self.current_db.name: return
  3. if do_query:   
  4. self.query("use `%s`" % name, False)  
  5. self.query("set names utf8",  False)  
  6. try:  
  7. self.current_db = self.databases[name]  
  8. except KeyError:  
  9. print"Warning: used an unknown database %r! please refresh host!\n%s" % (name, "".join(traceback.format_stack()))  
自己看著改,反正改成上面的樣子,注意空格,因為python是以空格當語句的分割語法的。

其實就是加了一句

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

到這裡就徹底ok了。

原地址:http://www.linuxidc.com/Linux/2011-11/47167.htm


相關推薦

Ubuntu 11.10 MySQL客戶 Emma 6.0 中文亂碼解決辦法

在Linux如果使用mysql的圖形客戶端,我感覺Emma算一個好用的了。 比起mysql自己的Mysql Query Browser 要好, 而且最不能忍受的是Mysql Query Browser 在Ubuntu 11.10 會有程式崩潰現象。 相比而言emma是挺好,

ubuntu 11.10 mysql 客戶 Emma 6.0 中文亂碼解決辦法

在linux如果使用mysql的圖形客戶端,我感覺emma算一個好用的了。 比起mysql自己的Mysql Query Browser 要好, 而且最不能忍受的是Mysql Query Browser 在ubuntu 11.10 會有程式崩潰現象。 相比而言emma是挺好,

[Ubuntu 14.04] Samba客戶不能修改檔案的解決辦法

版本: Ubuntu 14.04.2 LTS (GNU/Linux 3.16.0-30-generic x86_64) 繼上一篇配置好Samba服務可以訪問讀寫之後又遇到了問題, 客戶端可以修改自己建

oracle服務客戶字符集不同導致中文亂碼解決方案

use 修改環境變量 描述 image nls_lang oracle服務 環境 分析 導致 1.問題描述 用pl/sql登錄時,會提示“數據庫字符集(ZHS16GBK)和客戶端字符集(2%)是不同的,字符集轉化可能會造成不可預期的後果”,具體問題是中文亂碼,如下圖 2.

ubuntu mysql 客戶 emma 中文亂碼問題解決

emma預設用apt-get 安裝的話,emma是不支援中文的,配置檔案或直接修改emma程式原始檔(python)。apt-get安裝emma[list=1]sudo apt-get install emma [/list]如果你已經安裝完畢並且執行過emma,程式就會建

【linux】mysql客戶emma中文亂碼問題解決

參考 詳情 emma預設用apt-get 安裝的話,emma是不支援中文的,配置檔案或直接修改emma程式原始檔(python)。 也可以通過ubuntu的軟體市場安裝 apt-get安裝emma sudo apt-get install e

LINUX下mysql客戶不能輸入中文

自己 很多 輸入中文 sql linu 如果 lan 自帶 linux 今天遇到了這個問題,在LINUX下輸入中文,沒有問題,但在MYSQL客戶端上無法輸入中文,很奇怪? 找了很多資料終於解決了這個問題,其實這個和字符集無關。通常出現在自己編譯的mysql版本上,如果是

ORACLE客戶語言設置,SQLPLUS亂碼解決方法

oracle 亂碼 語言 設置 客戶端環境參數NLS_LANG = LANGUAGE_TERRITORY.CHARACTER_SET 說明如下Parameter DescriptionLANGUAGE Specifies the l

Ubuntu 17.10 下,Qt無法使用qDebug()輸出的解決辦法

前幾天qDebug()一直無法輸入,用qWarning()又可以了。我排查了標頭檔案包含、語句語法、全域性巨集等等,發現不是程式碼的原因。百度上搜索了很久都沒有找到解決方法,用谷歌一下子就解決了。 解決方法很簡單,在~/.config/QtProject/下面建立一個文字檔案,重新命名為

解決Sybase客戶執行SQL遇到中文亂碼問題

在用Sybase客戶端時候經常會遇到中文亂碼問題,因此在這裡記錄一下,如何去設定。 首先開啟Sybase Central ,如圖所示: 然後開啟SQL Advantage,點選Server  

Linux下Tomcat向MySQL插入數據中文亂碼解決辦法

中文亂碼解決辦法Linux下Tomcat向MySQL插入數據中文亂碼解決辦法 一、問題 在windows上面使用eclipse開發的項目在windows上面運行一切正常,部署到騰訊雲時出現向MySQL數據庫中插入數據是中文亂碼 二、解決辦法 1、嘗試一直接在linux上面使用insert語句插入中文,正常2、

MySQL數據庫中的中文亂碼解決方案。

中文亂碼 數據庫MySQL 數據庫中輸入中文容易出現亂碼?(亂碼問題本源:參見http://blog.51cto.com/12042068/2115021)解決方法:1.在建表建庫的時候就指定默認編碼 utf8. CREATE TABLE table_name (

MySQL 命令行不能插入中文解決辦法

-o oot png 後來 src 執行 http .com ges 今天遇到一個問題,通過navicat 的命令行,向MySQL中建庫,建表,插入數據,數據中有中文,將腳本粘貼到命令行中後,回車,總是報錯:You have an error in your SQL sy

mysql資料庫匯入.sql檔案,中文亂碼解決

方法一: 通過增加引數 –default-character-set = utf8 解決亂碼問題 mysql -u root -p password < path_to_import_file –default-character-set = utf8 方法二: 在命令列匯入亂碼解

navicat for mysql 顯示中文亂碼解決辦法

最近遇到一個問題,用navicat for mysql 開啟資料庫時全都顯示的是亂碼(在用程式程式碼插入資料之前確保字元不是亂碼),遇到問題就的尋求解決之道,百度了好長時間也沒解決,網上那些解決辦法都不適合我的問題,網上的大多數解決方法是在navicat裡右擊一個連線,選擇連線屬性,切換到高階選項卡,去掉“使

navicat for mysql學習之道:navicat for mysql 顯示中文亂碼解決辦法

在“連線屬性”的設定中,高階-“使用mysql字符集”去掉鉤,並且將編碼改為10008-GB2312. 然後進入navicat的控制檯後,show variables like 'char%';命令後如下: +--------------------------+-----------------------

Ubuntu命令列中文亂碼解決辦法

Linux版本:Ubuntu 11.04 (GNU/Linux 2.6.38-8-generic-pae i686) 解決方法: 1.修改/etc/default/locale 使用命令:sudo vim /etc/default/locale 2.把裡面的內容設定為  

mysql資料表中文亂碼解決辦法

在往mysql資料庫中插入資料的時候出現數據(漢字)亂碼情況: 在把資料庫,資料表的編碼改為UTF-8後,還是亂碼。 Mysql的預設編碼方式是Latin1,不支援中文,因此,如果要讓mysql支援中文的話需要把資料庫預設的編碼修改為gbk或者utf8。 1.檢視資料庫的

ubuntu 14.04下gedit檢視txt中文亂碼解決辦法

gsettings set org.gnome.gedit.preferences.encodings auto-detected"['GB18030', 'GB2312', 'GBK', 'UTF-8', 'BIG5', 'CURRENT','UTF-16']"

mysql插入中文亂碼解決辦法

mysql資料庫插入中文資料出現亂碼,而查詢沒有中文亂碼問題,說明資料庫編碼設定正確,但是插入中文亂碼,說明SQL語句有問題,解決辦法就是中文欄位加引號 String sql = "UPDATE user SET na