草庐IT

ensure_ascii

全部标签

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".

ruby `encode' : "\xC3"从 ASCII-8BIT 到 UTF-8 (Encoding::UndefinedConversionError)

tvdb中的汉尼拔剧集里有奇怪的角色。例如:Œuf于是ruby吐出:./manifesto.rb:19:in`encode':"\xC3"fromASCII-8BITtoUTF-8(Encoding::UndefinedConversionError)from./manifesto.rb:19:in`to_json'from./manifesto.rb:19:in`'第19行是:puts@tree.to_json有没有办法处理这些非utf字符?我宁愿不替换它们,而是转换它们?还是无视他们?我不知道,感谢任何帮助。奇怪的是脚本通过cron运行良好。手动运行它会产生错误。

ruby-on-rails - Rails 3 无效的多字节字符 (US-ASCII)

我找到了类似的帖子here但无论如何我都无法解决问题。我明白了/home/fra/siti/Pensiero/db/seeds.rb:32:invalidmultibytechar(US-ASCII)/home/fra/siti/Pensiero/db/seeds.rb:32:invalidmultibytechar(US-ASCII)/home/fra/siti/Pensiero/db/seeds.rb:32:syntaxerror,unexpected$end,expecting')'...edilvaloredellavita,sièmalati",:user_id=>1,:ca

Ruby 1.9 - 无效的多字节字符 (US-ASCII)

我试图让我的Rails应用程序(2.3.5)在Ruby1.9上运行,我有这个函数可以对字符串进行一些转换:defreplace_special_chars(downcase=true)ifdowncasestring=self.downcaseelsestring=selfendstring.gsub!/á|ã|à|ä|â/,'a'string.gsub!/é|è|ë|ê/,'e'string.gsub!/í|ì|ï|î/,'i'string.gsub!/ó|õ|ò|ô|ö/,'o'string.gsub!/ú|ù|ü|û/,'u'string.gsub!/ç/,'c'string.g

ruby - 使用 `?`(问号)在 Ruby 中获取 ASCII 字符代码失败

我现在需要一个字符的ASCII值(对于ProjectEulerquestion#22,如果你想得到具体的),我遇到了一个问题。作为ruby​​的新手,我用谷歌搜索了一下,发现?是要走的路:?A或其他。但是当我将它合并到我的代码中时,该语句的结果是字符串"A"——没有字符代码。[0]和slice(0)存在同样的问题,理论上它们都应该返回ASCII码。我唯一能想到的是这是ruby版本问题。我正在使用1.9.1-p0,今天下午从1.8.6升级。我从Ruby的工作版本开始,在同一个目录中做了一些欺骗,我想我可能已经有了没有与.zip文件捆绑在一起的文件,所以我没有下载它们。那么为什么我的所有A

Ruby 将 CSV 文件读取为 UTF-8 和/或将 ASCII-8Bit 编码转换为 UTF-8

我正在使用ruby1.9.2我正在尝试解析包含一些法语单词(例如spécifié)的CSV文件,并将内容放入MySQL数据库中。当我从CSV文件中读取行时,file_contents=CSV.read("csvfile.csv",col_sep:"$")返回的元素是ASCII-8BIT编码的字符串(spécifié变为sp\xE9cifi\xE9),然后像“spécifié”这样的字符串没有正确保存到我的MySQL数据库中。YehudaKatz表示ASCII-8BIT实际上是“二进制”数据,这意味着CSV不知道如何读取适当的编码。所以,如果我尝试让CSV强制编码如下:file_cont

ruby - 如何摆脱 ruby 中的非ascii字符

我有一个RubyCGI(不是Rails),可以从Web表单中挑选照片和标题。我的用户非常热衷于使用智能引号和连字,他们从其他来源粘贴。我的网络应用程序不能很好地处理这些非ASCII字符,是否有快速的Ruby字符串操作例程可以摆脱非ASCII字符? 最佳答案 使用字符串#encode从Ruby1.9开始,在字符串编码之间进行转换的官方方法是使用String#encode.要简单地删除非ASCII字符,您可以这样做:some_ascii="abc"some_unicode="áëëçüñżλφθΩ??"more_ascii="123A

ruby-on-rails - 不兼容的字符编码 : ASCII-8BIT and UTF-8

我使用Ruby1.9.2和Rails3.0.5我有以下错误:incompatiblecharacterencodings:ASCII-8BITandUTF-8我认为这与数据库无关。错误发生在View中的这一行(只是一个divhaml调用):#content全栈:ActionView::Template::Error(incompatiblecharacterencodings:ASCII-8BITandUTF-8):21:-flash.eachdo|name,msg|22:=content_tag:div,msg,:id=>"flash_#{name}"23:%div.clear24: