Geo*_*rgi 5 ruby utf-8 internationalization
在仔细开发Ruby之后,我了解到在Ruby 1.9中实现了详细的字符编码.我现在的问题是:如何使用Ruby来与存储UTF8中所有数据的数据库进行通信?
背景:我参与了一个新项目,其中Ruby/RoR至少是一个选项.但该项目需要依赖于国际化的字符集(它遍布许多国家),最好是UTF8.
那你怎么处理那个?提前致谢.
虽然我还没有测试过它,但字符编码库(目前处于 alpha 版本)向 String 类添加了处理 UTF-8 和其他编码的方法。它在 RubyForge 上的页面在这里。它是为 Ruby 1.8 设计的。
\n\n然而,根据我的经验,使用 Ruby 1.8,如果您将数据以 UTF-8 形式存储在数据库中,只要 HTTP 标头中的字符编码是 UTF-8,Ruby 就不会妨碍您。它可能无法对字符串进行操作,但不会破坏任何东西。例子:
\n\nfile.txt:\n\xc2\xa1Hola! \xc2\xbfComo est\xc3\xa1s? Le\xc3\xad el art\xc3\xadculo. \xc2\xa1Fue muy excellente!\nRun Code Online (Sandbox Code Playgroud)\n\n请原谅我糟糕的西班牙语;这是我能想到的最好的 Unicode 例子。
\n\nin irb:\nstr = File.read("file.txt")\n => "\\302\\241Hola! \\302\\277Como est\\303\\241s? Le\\303\\255 el art\\303\\255culo. \\302\\241Fue muy excellente!\\n"\nstr += "Foo is equal to bar."\n => "\\302\\241Hola! \\302\\277Como est\\303\\241s? Le\\303\\255 el art\\303\\255culo. \\302\\241Fue muy excellente!\\nFoo is equal to bar."\nstr = " " + str + " "\n => " \\302\\241Hola! \\302\\277Como est\\303\\241s? Le\\303\\255 el art\\303\\255culo. \\302\\241Fue muy excellente!\\nFoo is equal to bar. "\nstr.strip\n => "\\302\\241Hola! \\302\\277Como est\\303\\241s? Le\\303\\255 el art\\303\\255culo. \\302\\241Fue muy excellente!\\nFoo is equal to bar."\nRun Code Online (Sandbox Code Playgroud)\n\n基本上,它只会将 UTF-8 视为包含奇数字符的 ASCII。如果代码点乱序,它不会按字典顺序排序;但是,它将按代码点排序。例子:
\n\n"\\302" <=> "\\301"\n => -1\nRun Code Online (Sandbox Code Playgroud)\n\n无论如何,您计划对 Rails 应用程序中的数据进行多少操作?大多数排序等通常由数据库引擎完成。
\n| 归档时间: |
|
| 查看次数: |
1864 次 |
| 最近记录: |