2016-10-28 126 views
0

當我將數據插入到我的MySQL數據庫時,出現了一些奇怪的符號。MySQL中奇怪的字符

該表設置爲使用UTF8_bin。這些符號就像

Landon?ÇÖs 

?ÇÖ應該是一個'

我傳遞的所有行的MySQL表從一個腳本,像這樣:

insert = ("INSERT INTO #{event.split(" : ")[0]} (`Date`, `Start`, `End`, `Location`, `Details`, `Map`) VALUES (#{event.split(" : ")[1]});").to_s 
client = Mysql2::Client.new(:host => "hostInfo", :username => "usName", :password =>"usPass", :database => "dbName") 
client.query(insert) 
client.close 

而且我現在用的是mysql2寶石連接和信息傳遞到數據庫中。

我做了一些挖掘,我得到了控制檯給我這個輸出,試圖用不同的字符替換特殊字符。這是控制檯輸出不兼容字符編碼的錯誤消息:IBM437和UTF-8
(Encoding :: CompatibilityError)

+0

表可能是utf8。那麼ruby-> db連接呢?那麼ruby->輸出環境呢?如果你把它轉儲到一個(比如說)iso8859顯示系統中,這對你的utf8文本沒有幫助。 –

+0

Marc,數據庫連接僅使用默認編碼設置。我不是100%確定輸出編碼是什麼,但是正在處理的信息沒有被顯示,用戶只能在控制檯端看到。 –

+1

所以chars在表格本身顯示'?Ç'?確保無論是插入數據最初是否正確。整個處理鏈必須始終保持相同的字符集,或在「邊界」處有適當的轉換邏輯。 –

回答

0

這是一個MySql編碼問題。將表編碼更改爲utf8_general_ci