相关疑难解决方法(0)

将非ASCII字符从ASCII-8BIT转换为UTF-8

我正在从远程站点提取文本并尝试将其加载到默认使用utf-8的Ruby 1.9/Rails 3应用程序中.

以下是一些违规文字的示例:

Cancer Res; 71(3); 1-11. ©2011 AACR.\n
Run Code Online (Sandbox Code Playgroud)

扩展的版权代码如下所示:

Cancer Res; 71(3); 1-11. \xC2\xA92011 AACR.\n
Run Code Online (Sandbox Code Playgroud)

Ruby告诉我字符串被编码为ASCII-8BIT并且输入我的Rails应用程序让我这样:

incompatible character encodings: ASCII-8BIT and UTF-8
Run Code Online (Sandbox Code Playgroud)

我可以使用此正则表达式删除版权代码

str.gsub(/[\x00-\x7F]/n,'?')
Run Code Online (Sandbox Code Playgroud)

产生这个

Cancer Res; 71(3); 1-11. ??2011 AACR.\n
Run Code Online (Sandbox Code Playgroud)

但是如何在UTF-8中将版权符号(以及其他各种符号,如希腊字母)转换为相同的符号?当然有可能......

我看到使用force_encoding的引用,但这不起作用:

str.force_encoding('utf-8').encode
Run Code Online (Sandbox Code Playgroud)

我意识到还有很多其他人有类似的问题,但我还没有看到一个有效的解决方案.

ruby utf-8 internationalization

45
推荐指数
3
解决办法
6万
查看次数

使用RSpec和Ruby on Rails的国际字符

我刚刚开始使用RSpec,我在RSpec github repo上复制了非常简单的测试,以确保事情按预期工作:

require 'spec_helper'

describe 'Home Page' do
  it "Welcomes the user" do
    visit '/products'
    page.should have_content("Welcome")
  end
end
Run Code Online (Sandbox Code Playgroud)

当我将字符串更改为"Olá"或"Caçamba"之类的问题时,问题就开始了.任何具有特殊字符的字符串.当我这样做时,我收到以下错误:

invalid multibyte char (US-ASCII) (SyntaxError)
invalid multibyte char (US-ASCII)
syntax error, unexpected $end, expecting ')'
page.should have_content("Olá")
Run Code Online (Sandbox Code Playgroud)

关于如何修复它的任何想法?也许一些配置选项?非常感谢

ruby testing rspec ruby-on-rails

12
推荐指数
1
解决办法
3894
查看次数

将法语(重音)字符放在Ruby文件中

可能重复:
使用Rails和Ruby 1.9的无效多字节字符(US-ASCII)

如何将法语字符放在Ruby文件中?这是一个错误:

SyntaxError in ArticlesController#show 

    /.../app/controllers/articles_controller.rb:47: invalid multibyte char (US-ASCII)
    /.../app/controllers/articles_controller.rb:47: invalid multibyte char (US-ASCII)
    /.../app/controllers/articles_controller.rb:47: syntax error, unexpected $end, expecting '}'
    ...@article, notice: 'Article a été créé avec succes.' }
Run Code Online (Sandbox Code Playgroud)

在HTML文件中,将其置于头部并且重音符号有效:

<!DOCTYPE html>

<head>
<meta http-equiv="content-type" content="text/html"; charset="utf8">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<meta http-equiv="Content-Style-Type" content="text/css">
  <!-- ... autres mentions de l'entête de fichier ... -->
</head>
Run Code Online (Sandbox Code Playgroud)

ruby linux ubuntu ruby-on-rails-3

4
推荐指数
2
解决办法
3465
查看次数