回答
欄杆active_support gem有可以處理這個的字符串擴展。
例如:
# $ sudo gem install activesupport
require 'active_support/core_ext/string'
'Laurent, où sont les tests ?'.mb_chars.upcase.to_s
# outputs => "LAURENT, OÙ SONT LES TESTS ?"
這並不是一個西裏爾字母 工作提出 「ТОВАЕТЕСТ」 .downcase => 「ТОВАЕТЕСТ」 – 2011-04-13 18:54:45
紅寶石只支持上的字母A
– Z
和a
– z
的情況下的轉換。
原因很簡單,其他字母的大小寫轉換沒有很好的定義。例如,土耳其語'I'.downcase # => 'ı'
和'i'.upcase # => 'İ'
,但法文'I'.downcase # => 'i'
和'i'.upcase # => 'I'
。 Ruby不僅需要知道字符編碼,還需要知道正確的語言。
更糟糕的是,在德國
'MASSE'.downcase
是要麼
'maße' # "measurements"
'masse' # "mass"
換句話說:你需要真正瞭解文本,即你需要一個全面的AI,正確執行案例轉換。
而且我自己實際上意外地構造了一次句子,即使對於人類也是不可判定的。
簡而言之:這是不可能做到的,這就是爲什麼Ruby不這樣做在所有。有第三方庫,但是,像Unicode的圖書館和的ActiveSupport,這做支持字符稍大的子集。
甲苯基cevap,約爾格。 – 2014-10-31 14:16:57
"ТЕКСТ".mb_chars.downcase # => "текст"
不幸的是,在Ruby 1.9中不支持downcase/upcase,因爲其他帖子中描述的問題。你仍然可以寫你自己的寶石,這將增加對西里爾文的支持。你可以看一下我的gem for Polish - 打開正確的情況下,摺疊一樣簡單:
gem 'string_case_pl'
它還提供適當的字符串排序波蘭。
- 1. 如何在字符串上使用indexOf方法多次提取字符串?
- 2. 在C中使用utf8字符串
- 3. 字符串限制字 - UTF8
- 4. 如何將utf8字符串轉換爲ascii字符串?
- 5. 如何將字符串轉換爲UTF8?
- 6. Utf8 - 如何清理這些字符串?
- 7. 獲取UTF8字符串
- 8. iOS:解碼utf8字符串
- 9. libpqxx postgresql utf8字符串
- 10. 編碼字符串UTF8
- 11. iphone xml-rpc utf8字符串
- 12. 如何從UTF8字符串中刪除控制字符
- 13. 如何從utf8字符串中獲取字符
- 14. 如何從utf8字符串中獲取等效的非utf8字符?
- 15. 使用Wireshark的UTF8字符
- 16. 如何在字符串文字中使用字符串插值?
- 17. 使用字符串方法格式()從字符串
- 18. 無法在字符串上使用simplejson.loads()
- 19. 使用utf8字符替換內部字符串後無法寫入rtf文件
- 20. 如何在iPhone上使用JSON解碼UTF8字符?
- 21. HTTP頭上的UTF8字符
- 22. 將字節[]轉換爲UTF8字符串
- 23. UTF8字節到字符串和Winsock GetStream
- 24. 在Haskell中,如何獲得UTF8字符串中的字節數?
- 25. 如何在Oracle中使用regex_replace方法在特定字符串上添加字符串
- 26. 使用UTF8文字字符xcode ENUM
- 27. 使用Subsonic.Select()方法ExecuteTypedList用字符串
- 28. 調用使用字符串的方法
- 29. 我該如何使用NSArray的UTF8字符串
- 30. 將UTF8字符串編碼爲ISO-8859-1字符串(VB.NET)
如果你使用1.8或1.9,請告訴我們,行爲顯著在1.9與關於編碼處理改變。在1.8字符串是字節數組,在1.9它們是字符數組。 – Theo 2010-12-11 20:33:22