1
我正在研究ruby腳本(使用續集)將數據從舊數據庫傳輸到新數據庫。由於舊數據庫的編碼問題,我得到的值是「München」而不是「München」。在ruby腳本中修復從數據庫中打亂的變音符號
DB = Sequel.mysql2 'db_name', user: 'name', password: '***', host: '127.0.0.1' # , encoding: Encoding::CP1252.name) # doesn't work
city = DB[:users].first['city'] # => "München"
city.encoding # => #<Encoding:UTF-8>
city.encode(Encoding::UTF_8, Encoding::CP1252) # => "München"
舊的數據庫的編碼設置爲CP1252,新的一個是utf-8。
我試圖#gsub
破碎的變音,但是,這並不工作:
umlauts = {
'ä' => 'ä',
'ö' => 'ö',
'ü' => 'ü',
'ß' => 'ß'
}
city.gsub(/[#{umlauts.keys.join}]/, umlauts) # => "Mnchen"
我完全無能如何正確地與編碼工作,你知道我如何能得到「慕尼黑」?
是什麼原因沒有你GSUB工作?我的工作很好:'string =「München」; string.gsub(「ü」,「ü」); =>「München」' –