我想將「HELLO」轉換爲「HELLO」,刪除所有導致問題的特殊字符插入到數據庫中。它們似乎不屬於UTF8。如何處理Ruby中的「」字符
我想弄清楚Iconv,但我那種堅持在這裏:
str = "A string with " to "A string with "
some_format = "I have no clue what format this is"
Iconv.conv(some_format, 'UTF-8//IGNORE', str)
這樣做:
Iconv.conv('UTF-16', 'UTF-8//IGNORE', str)
... ...回報
\376\377\000H\000E\000L\000L\000O?G?`?`?`?`?`?`?`?`?`?`?`?`?`?`?`?`?`?`?`?`?`?`?`?`?`?`?????\342
我不想轉換爲UTF8以外的東西,因爲我必須處理阿拉伯字符,中文,日文,韓文......
任何幫助/指針,將不勝感激。我使用的是Ruby 1.8.7,但我很快就會遷移到1.9.3。一種適用於這兩種情況的解決方案是最好的,但只有1.9.3的解決方案也不錯。
這些「字符」來自哪裏?如果它們「不是utf-8的一部分」(我甚至不確定它是否有意義),當它們得到它們時它們是什麼編碼? – geoffspear 2012-03-23 10:24:32
@Wooble:它們來自用戶輸入。我不確定他們應該是什麼。由於UTF-16是有意義的,所以它可以用於http://en.wikipedia.org/wiki/UTF-16 – marcgg 2012-03-23 10:26:37
,但UTF-8和UTF-16只是unicode字符集的編碼。如果一個字形在unicode中存在,它可以用任何一種編碼表示。我猜你真正擁有的不是字符,而是一些未知編碼中的字節。你必須確保在從用戶那裏得到輸入時,你知道他們正在發送什麼編碼。 – geoffspear 2012-03-23 10:34:08