Tag: utf 8

Ruby Iconv适用于irb和ruby调试器,但不适用于unit testing

我在Ubuntu 10.04 64位上运行带有Rails 2.3.5的Ruby 1.8.7。 我写了一个方法,应该采用这样的字符串, “École À la Découverte”并输出一个文件系统名称,如”ecole_a_la_decouverte” : (Iconv.new(‘US-ASCII//TRANSLIT’, ‘utf-8’).iconv “École À la Découverte”).downcase.split.join(‘_’) 当我在我的代码中测试这一行时,测试总是失败,说”cole_la_dcouverte”不等于”ecole_a_la_decouverte” 。 奇怪的是,如果我插入调试器行并使用调试器控制台,则测试通过。 同样,在irb和./script/console手动运行此行似乎也可行。 有谁知道发生了什么以及为什么这个测试失败了? 我唯一的想法是包括调试器或irb以某种方式增加了对UTF-8的更多支持,但我不知道下一步该去哪里。 提前致谢!

Mysql2 gem不能与UTF8一起使用

我已将我的Rails应用程序从Mysql gem切换到Mysql2,但现在UTF8字段无法正常工作; 特别是,角色á出现为Ã。 当使用PHP时,以及使用Mysql gem时,该字符在MySQL控制台中正确显示。 我在我的database.yml文件中设置了encoding: utf8 。 可能有帮助 当我在控制台中检查它的角色时,我看到á是“\ 303 \ 241”(使用Mysqlgem)但是Ã是“\ 303 \ 203 \ 302 \ 241”(使用Mysql2gem) 。

Rails 2.3.9查询参数的编码

是否可以使用rails将查询参数解码为utf8。 如果我有像/ foo这样的东西?param =£ 我尝试访问控制器中的参数,参数编码为ASCII-8BIT。 这会导致许多事情破裂,因为很多其他字符串都是UTF-8编码而ruby不喜欢混合编码。 params[:param].encoding == Encoding.find(“ASCII-8BIT”)

尽管在Heroku上使用Rails设置了新的参数组,但无法在RDS中存储UTF-8

我正在使用Amazon RDS作为数据库在Heroku上设置一个新的Rails(2.3.5)应用程序实例。 我想把UTF-8用于一切。 由于默认情况下RDS不是UTF-8,因此我设置了一个新的参数组并将数据库切换为使用该参数,基本上是这样的 。 似乎工作: SHOW VARIABLES LIKE ‘%character%’; character_set_client utf8 character_set_connection utf8 character_set_database utf8 character_set_filesystem binary character_set_results utf8 character_set_server utf8 character_set_system utf8 character_sets_dir /rdsdbbin/mysql-5.1.50.R3/share/mysql/charsets/ 此外,我已成功设置Heroku以使用RDS数据库。 在rake db:migrate之后,一切看起来都很好: CREATE TABLE `comments` ( `id` int(11) NOT NULL AUTO_INCREMENT, `commentable_id` int(11) DEFAULT NULL, `parent_id` int(11) DEFAULT NULL, `content` text COLLATE utf8_unicode_ci, `child_count` int(11) DEFAULT ‘0’, `created_at` […]

Prawn&Prawnto Rails PDF生成 – UTF-8?

我正在使用ruby,prawn和prawnto来动态生成包含其他语言文本的pdf。 我似乎无法使用非英文字符的语言显示任何文本。 它不会抛出任何错误…只显示一堆破折号而不是字符。 Prawn在其主页上讨论UTF-8支持,所以我不明白为什么这是一个问题。 我正在使用ruby1.8.6(发动机厂)。

错误:不兼容的字符编码:UTF-8和ASCII-8BIT

我得到了错误incompatible character encodings: UTF-8 and ASCII-8BIT ,当在数据库中找到一些字符时,如:ñ,á,é等。 我的环境是: Rails:3.2.5 Ruby:1.9.4p194 数据库:Oracle 10g(10.2.0.1.0) 我可以使用Toad将这些字符保存在数据库中。 我试图在我的观点的第一行写这个: 在enviroment.erb Encoding.default_external = Encoding::UTF_8 Encoding.default_internal = Encoding::UTF_8 但没有解决这个问题。 请,有人可以给一些建议来解决这个问题。 谢谢。

Rails上的UTF8 MySQL问题 – 使用utf8_general_ci编码问题

我有一个在MySQL 5.0.32-Debian上运行的升级Rails站点。 在这个特定的网站上,我的所有表都使用utf8 / utf8_general_ci编码。 在该数据库中,我有一些看起来像这样的数据: mysql> select * from currency_types limit 1,10; +——+—————–+———+ | code | name | symbol | +——+—————–+———+ | CAD | Canadian Dollar | $ | | CNY | Chinese Yuan | å…ƒ | | EUR | Euro | € | | GBP | Pound | £ | | INR | […]

在HTTP Basic Auth用户名中损坏了UTF-8字符

我正在尝试使用Ruby on Rails构建Web服务。 用户通过HTTP Basic Auth进行身份validation。 我想在用户名和密码中允许任何有效的UTF-8字符。 问题是浏览器在将它们发送到我的服务之前会破坏Basic Auth凭证中的字符。 为了测试,我使用’カタカナカタカナカタカナカタカナカタカナカタカナカタカナカタカナカタカナカタカナ’作为我的用户名(不知道它是什么意思 – AFAIK它是我们的QA家伙想出的一些随机字符 – 请原谅我,如果它是某种方式令人反感)。 如果我把它看作一个字符串,并做username.unpack(“H *”)将其转换为hex,我得到:“3e28ba3e28fb3e28ba3e38a83e28ba3e28fb3e28ba3e38a83e28ba3e28fb3e28ba3e38a83e28ba3e28fb3e28ba3e38a83e28ba3e28fb3e28ba3e38a83e28ba3e28fb3e28ba3e38a83e28ba3e28fb3e28ba3e38a83e28ba3e28fb3e28ba3e38a8”这似乎是对适合32个汉字字符(3个字节元/ 6个hex数字)。 如果我使用通过HTTP Basic auth进入的用户名执行相同的操作,我会得到:’bafbbaacbafbbaacbafbbaacbafbbaacbafbbaacbafbbaacbafbbaacbafbbaac’。 它显然要短得多。 使用Firefox Live HTTP Headers插件,这是发送的实际标头: Authorization: Basic q7+ryqu/q8qrv6vKq7+ryqu/q8qrv6vKq7+ryqu/q8o6q7+ryqu/q8qrv6vKq7+ryqu/q8qrv6vKq7+ryqu/q8o= 看起来像’bafbba …’字符串,交换了高低字节(至少当我将其粘贴到Emacs中时,基本64解码,然后切换到hexl模式)。 这可能是用户名的UTF16表示,但我没有任何东西可以将它显示为除了胡言乱语之外的任何东西。 Rails将内容类型标头设置为UTF-8,因此浏览器应该以该编码发送。 我获得了表单提交的正确数据。 问题出现在Firefox 3.0.8和IE 7中。 那么…是否有一些神奇的function让网络浏览器通过HTTP Basic Auth发送UTF-8字符? 我在接收端处理错误了吗? HTTP Basic Auth是否不适用于非ASCII字符?

在UTF-8上的Home #index“\ xA9”中编码:: InvalidByteSequenceError

我是Ruby on Rails的新手,现在已经和这个问题争论了一段时间。 我从git中删除了一个网站,并确保安装了所有依赖项,但是,当我运行该站点时,我收到错误: ActionView :: Template :: Error(UTF-8上的“\ xA9”) 因为使用代码image_path(“bground2.jpg”)链接图像的行。 当我删除image_path(“bground2.jpg”) ,错误得到解决。 然而,我需要image_path(“bground2.jpg”)并且离不开它。 我在这里尝试了解决方案,但似乎没有用 这是index.html.erb文件的一部分,但错误在包含image_path和image_url所有位置重复出现: <div class="img-responsive" style="background-image: url(); background-position: 50% 0;height: 500px;”> <!– <!– –>

Ruby on Rails UTF8问题

当我运行我的代码时: @a = People.order(‘created_at DESC’).limit(1).pluck(:name) 它告诉我这个: “\xD0\x9A\xD0\xB0\xD1\x81\xD0\xBB” 我读到这是UTF8问题。 为了解决这个问题我做了: 我的MySQL表是UTF8 utf8_general_ci 在application.rb中我粘贴: class Application < Rails::Application config.encoding = "utf-8" 但所有这些步骤都没有帮助我。 在MySQL表中所有看起来都正确,这个问题只是俄语字母。 任何想法如何解决这个问题?