Tag: 编码

ruby`coding’:“\ xC3”从ASCII-8BIT到UTF-8(Encoding :: UndefinedConversionError)

tvdb中的汉尼拔剧集中有奇怪的人物。 例如: Œuf 所以ruby吐出来: ./manifesto.rb:19:in `encode’: “\xC3” from ASCII-8BIT to UTF-8 (Encoding::UndefinedConversionError) from ./manifesto.rb:19:in `to_json’ from ./manifesto.rb:19:in `’ 第19行是: puts @tree.to_json 有没有办法处理这些非utf字符? 我宁愿不更换它们,而是转换它们? 还是忽略它们? 我不知道,任何帮助表示赞赏。 奇怪的是,脚本通过cron工作正常。 手动运行它会产生错误。

Ruby 1.9:具有未知输入编码的正则表达式

是否有一种可接受的方法来处理Ruby 1.9中的正则表达式,其中输入的编码是未知的? 假设我的输入恰好是UTF-16编码: x = “foobarbaz” y = x.encode(‘UTF-16LE’) re = /(.*)/ x.match(re) => #<MatchData "bar” 1:”bar”> y.match(re) Encoding::CompatibilityError: incompatible encoding regexp match (US-ASCII regexp with UTF-16LE string) 我目前的方法是在内部使用UTF-8并在必要时重新编码(副本)输入: if y.methods.include?(:encode) # Ruby 1.8 compatibility if y.encoding.name != ‘UTF-8’ y = y.encode(‘UTF-8’) end end y.match(/(.*)/u) => #<MatchData "bar” 1:”bar”> 然而,这对我来说有点尴尬,我想问一下是否有更好的方法。

Ruby Regex错误:不兼容的编码regexp匹配(ASCII-8BIT regexp与UTF-8字符串)

我有两个错误,都围绕编码和两者相关。 我在启动WEBrick时遇到的第一个错误(技术上是警告): /Users/USERNAME/example/config/initializers/bb-ruby.rb:54: warning: invalid Unicode Property \P: /\:\-?\P/ 它指的是: /\:\-?\P/, 这只是一些正则表达式,最终是这个块的一部分: @@tags[‘Razzing’] = [ /\:\-?\P/, ”, ‘Razzing’, ‘:P’, :razzing] 然后,我在解析一些字符串时也会得到以下错误(可能是由于同一行)… Encoding::CompatibilityError incompatible encoding regexp match (ASCII-8BIT regexp with UTF-8 string) 我正在运行Ruby 1.9.2和Rails 3.2.1。

ruby 1.9 + sinatra不兼容的字符编码:ASCII-8BIT和UTF-8

我正在尝试将sinatra应用程序迁移到ruby 1.9 我正在使用sinatra 1.0,机架1.2.0和erb模板 当我启动sinatra它工作,但当我从浏览器请求网页时,我收到此错误: Encoding::CompatibilityError at / incompatible character encodings: ASCII-8BIT and UTF-8 所有.rb文件都有这个标题: #!/usr/bin/env ruby # encoding: utf-8 我认为问题出现在erb文件中,即使它表明它是UTF-8编码的 [user@localhost views]$ file home.erb home.erb: UTF-8 Unicode text 以前有人有这个问题吗? sinatra与ruby 1.9不完全兼容?

如何确定角色是否是汉字

如何判断一个角色是否是使用ruby的汉字?

为ruby 1.9设置全局默认编码

我想告诉ruby一切都是utf8,除非另有说明,所以我不必将这些# encoding: utf-8评论放在各处。

如何在Ruby中检测字符串中的某些Unicode字符?

给定Ruby 1.8.7中的字符串(没有使用\ p {}支持Unicode属性的令人敬畏的Oniguruma正则表达式引擎),我希望能够确定该字符串是否包含一个或多个中文,日文或韩文字符; 即 class String def contains_cjk? … end end >> ‘日本語’.contains_cjk? => true >> ‘광고 프로그램’.contains_cjk? => true >> ‘艾弗森将退出篮坛’.contains_cjk? => true >> ‘Watashi ha bakana gaijin desu.’.contains_cjk? => false 我怀疑这将归结为查看字符串中的任何字符是否在Unihan CJKV Unicode块中 ,但我认为值得询问是否有人知道Ruby中的现有解决方案。

在Heroku中将UTF-8设置为默认字符串编码

我需要在Heroku中将默认的ruby字符串编码更改为UTF-8。 由于某种原因,它是US-ASCII。 $ heroku控制台 myapp.heroku.com的Ruby控制台 >>“a”。编码 =># 但是,如果我在本地运行irb,我会得到不同的结果: $ irb ruby-1.9.2-p136:001>“a”。编码 =># 两者都运行在ruby 1.9.2上。 我也试过设置它,但是没有用: Encoding.default_internal = Encoding.default_external =“UTF-8” 想法? 谢谢,菲利普

在Ruby on Rails中,’#encoding:utf-8’和’config.encoding =“utf-8”’有什么不同?

我可以通过在其顶部添加注释行来指定任何ruby文件以使用特定编码: #encoding: utf-8 但是在Rails的config/application.rb ,我发现了这个: config.encoding = “utf-8” 他们不一样吗? 如果我设置了config.encoding = “utf-8” ,我还需要#encoding: utf-8吗?

错误地转义了JSON编码(Rails 3,Ruby 1.9.2)

在我的控制器中,以下工作(打印“oké”) puts obj.inspect 但这不会(呈现“ok \ u00e9”) render :json => obj 显然, to_json方法会转义unicode字符。 有没有办法防止这种情况发生?