我在UTF-8的字符串(根據.encoding.name & .valid_encoding?),而且在它的轉義Unicode字符(\ u009A)紅寶石1.9.2的Unicode - Unicode的轉義字符被丟棄
「Hammarskj \ u009Ald」
這應該打印爲「Hammarskjšld」,但它只是滴下字形。 EG:
puts "Hammarskj\u009Ald"
p "Hammarskj\u009Ald"
結果的文本:
Hammarskjld
"Hammarskj\u009Ald"
它還(如果我保存在數據庫中的數據)時,其保存和丟棄。我搜索了一段時間,但我無法弄清楚如何忽略它(這是我認爲我需要做的)。很多信息都是1.8.7,而1.9.2的一些信息並不是我所需要的。
任何人有任何想法如何做我想要的?我似乎有一個有效的UTF-8字符串,我想要做的就是保存在數據庫中(完好無損),但它總是丟棄轉義的unicode。
\ u009A在Unicode中不是「š」,9A在Windows-1252中是「š」。 Unicode「š」是\ u0161。有人向你說謊,如果他們聲稱使用Unicode。 – 2012-01-16 06:04:31
http://www.fileformat.info/info/unicode/char/9a/index.htm這是另有說明。 – Paul 2012-01-16 07:08:58
@Paul,fileformat.info網站由於其頁面生成方式而導致某些字符的圖像有誤。在這種情況下,圖像顯示「š」,但名稱顯示爲「」,分類顯示爲「其他,控制[Cc]」。因此,它是控制字符,而不是可見字符。數據中還有其他的東西可能是錯誤的(錯誤的代碼轉換?):名字「Hammarskjšld」沒有意義,它顯然應該是「Hammarskjöld」(U + 00F6作爲倒數第三個字母)。 –
2012-01-16 07:43:28