jjzjj

ruby-on-rails - ActionView::Template::Error(不兼容的字符编码:UTF-8 和 ASCII-8BIT)

我正在使用Ruby1.9.2、Rails3.0.4/3.0.5和PhusionPassenger3.0.3/3.0.4。我的模板是用HAML编写的,我使用的是MySQL2gem。我有一个Controller操作,当传递一个具有特殊字符(如变音符号)的参数时,会出现以下错误:ActionView::Template::Error(incompatiblecharacterencodings:UTF-8andASCII-8BIT)错误指向我的HAML模板的第一行,其中包含以下代码:我的理解是,这是因为我有一个UTF-8字符串与一个ASCII-8BIT字符串连接在一起,但我终究无法弄清楚那个

ruby - ruby 中字符串中的 gsub ASCII 码字符

我正在使用nokogiri来筛选一些HTML。在某些情况下,我会返回一些奇怪的字符,我已经使用以下代码找到了这些字符的ASCII码:@parser.leads[0].phone_numbers[0].each_bytedo|c|puts"char=#{c}"end相关字符的ASCII代码为194和160。我想在解析时以某种方式去除这些字符。我试过下面的代码,但它不起作用。@parser.leads[0].phone_numbers[0].gsub(/160.chr/,'').gsub(/194.chr/,'')谁能告诉我如何实现这一点? 最佳答案

ruby-on-rails - 为什么我会收到从 ASCII-8BIT 到 UTF-8 的字符串编码问题 "\xE2"?

我正在尝试从电子邮件下载PDF并将内容写入文件。出于某种原因,我收到此错误:AnEncoding::UndefinedConversionErroroccurredinattachments#inbound:"\xE2"fromASCII-8BITtoUTF-8app/controllers/api/attachments_controller.rb:70:in`write'这是我的代码:definboundifRails.env.production?orRails.env.staging?email=Postmark::Mitt.new(request.body.read)else

ruby - 如何从 Ruby 中的字符串中删除所有非 ASCII 字符

我好像是一个很简单也很需要的方法。我需要从字符串中删除所有非ASCII字符。例如©等。请参见以下示例。#coding:utf-8s="Hellothisamixedstring©thatImade."putss.encodingputss.encode输出:UTF-8Hellothisamixedstring┬⌐我做的。当我将其提供给Watir时,它会产生以下错误:不兼容的字符编码:UTF-8和ASCII-8BIT所以我的问题是我想在使用它之前去掉所有非ASCII字符。我将不知道源字符串“s”使用哪种编码。我已经搜索和试验了一段时间。如果我尝试使用putss.encode('ASCI

ruby - Ruby中字符的ASCII值

如何在Ruby1.9中获取字符的ASCII值?我在Internet上广泛搜索,但没有成功。我尝试了?x和“x”[0],但它们返回的都是“x”。 最佳答案 String#ord方法可以解决问题:ruby-1.9.2-p136>'x'.ord=>120ruby-1.9.2-p136>'0'.ord=>48ruby-1.9.2-p136>''.ord=>32 关于ruby-Ruby中字符的ASCII值,我们在StackOverflow上找到一个类似的问题: http

ruby-on-rails - rake 任务因 US-ASCII 中的无效字节序列而失败

升级到ruby​​1.9.3后,我的一个应用程序运行良好,但当我尝试使用capistrano进行部署时,我尝试转换的第二个应用程序在“assets:precompile”阶段失败。这是堆栈跟踪:rakeaborted!rakeaborted!invalidbytesequenceinUS-ASCII/Users/george/.rvm/gems/ruby-1.9.3-p392@global/gems/rake-10.0.4/lib/rake/trace_output.rb:16:in`blockintrace_on'/Users/george/.rvm/gems/ruby-1.9.3-

ruby - 转换十六进制、十进制、八进制和 ASCII?

尝试在Ruby中往返...我列出的代码似乎很重复。有更好的方法吗?moduleConverterdefself.convert(value,from,to)casefromwhen:hexcasetowhen:dec#codetochangehextodecwhen:oct#codetochangehextooctwhen:bin#codetochangehextobinwhen:ascii#codetochangehextoasciiendwhen:deccasetowhen:hex#codetochangedectohexwhen:oct#codetochangedectooctw

ruby-on-rails - ruby 正则表达式错误 : incompatible encoding regexp match (ASCII-8BIT regexp with UTF-8 string)

我遇到了两个错误,都与编码有关并且都相关。我在启动WEBrick时遇到的第一个错误(技术上是警告):/Users/USERNAME/example/config/initializers/bb-ruby.rb:54:warning:invalidUnicodeProperty\P:/\:\-?\P/它所指的行是:/\:\-?\P/,这只是一些正则表达式,最终是这个block的一部分:@@tags['Razzing']=[/\:\-?\P/,'','Razzing',':P',:razzing]然后,我在解析一些字符串时也得到了以下错误(大概是由于同一行)...Encoding::Com

ruby - 将具有十六进制 ASCII 代码的字符串转换为字符

我有一个包含ASCII字符的十六进制代码值的字符串,例如“666f6f626172”。我想把它转换成对应的字符串("foobar")。这是有效但丑陋的:"666f6f626172".scan(/../).map(&:hex).map(&:chr).join#=>"foobar"有没有更好(更简洁)的方式?unpack能以某种方式提供帮助吗? 最佳答案 您可以使用Array#pack:["666f6f626172"].pack('H*')#=>"foobar"H是十六进制字符串的指令(高半字节在前)。

Ruby:从字符串到ascii的字符

此wiki页面给出了如何将单个字符转换为ascii的一般概念http://en.wikibooks.org/wiki/Ruby_Programming/ASCII但是假设我有一个字符串并且我想从中获取每个字符的ascii,我需要做什么?"string".each_bytedo|c|$char=c.chr$ascii=?charputs$asciiend它不起作用,因为它对$ascii=?char这行不满意syntaxerror,unexpected'?'$ascii=?char^ 最佳答案 c变量已经包含字符代码!"string".