草庐IT

Ruby 将字符串编码从 ISO-8859-1 转换为 UTF-8 不起作用

我正在尝试将字符串从ISO-8859-1编码转换为UTF-8,但似乎无法正常工作。这是我在irb中所做的示例。irb(main):050:0>string='Norrlandsvägen'=>"Norrlandsvägen"irb(main):051:0>string.force_encoding('iso-8859-1')=>"Norrlandsv\xC3\xA4gen"irb(main):052:0>string=string.encode('utf-8')=>"Norrlandsvägen"我不确定为什么iso-8859-1中的Norrlandsvägen会被转换为utf-8中

Ruby 1.8.7 将散列转换为字符串

我没有使用ruby​​1.8.7,最近我很惊讶:{:k=>30}.to_s#=>"k30"是否准备好使用fix将哈希转换为ruby​​1.8.7的字符串以使其看起来像:{:k=>30}.to_s#=>"{:k=>30}" 最佳答案 hash.to_s确实已从1.8.7更改为1.9.3。在1.8.7中,(引用:http://ruby-doc.org/core-1.8.7/Hash.html#method-i-to_s):Convertshshtoastringbyconvertingthehashtoanarrayof[key,val

ruby-on-rails - ruby 1.9.3 UndefinedConversionError

直到最近,我的机器上一切正常,但几天后我不断收到错误Encoding::UndefinedConversionError:U+2713fromUTF-8toUS-ASCII任何时候我发帖从浏览器到服务器的东西。首先,由于涉及到帖子,我尝试了最明显的方法,即向database.yml添加编码:development:adapter:postgresqlhostname:localhostport:5432username:mikaelpassword:database:devencoding:utf8如果我安装ruby​​-debug19和ruby​​-debug-base19并运行ra

ruby - 在 Mac OSx 10.9.5 上升级到 Ruby 2.1.3

今天我在MacOSx10.9.5上从2.0.0升级到Ruby2.1.3。事实证明,这比最初预期的要困难得多。因为我浪费了很多时间,所以我想我应该分享我的经验和解决方案,以防其他人也遇到这个问题。我安装了xcode+开发者工具。我本周也更新了xcode-不确定这是否是事情突然不起作用的原因。然而,这是事实:$gcc-vConfiguredwith:--prefix=/Applications/Xcode.app/Contents/Developer/usr--with-gxx-include-dir=/usr/include/c++/4.2.1AppleLLVMversion6.0(cl

ruby - 枚举器如何在 Ruby 1.9.1 中工作?

这个问题不是关于如何在Ruby1.9.1中使用枚举器,而是我很好奇它们是如何工作的。这是一些代码:classBunkdefinitialize@h=[*1..100]enddefeachif!block_given?enum_for(:each)else0.upto(@h.length){|i|yield@h[i]}endendend在上面的代码中我可以使用e=Bunk.new.each,然后是e.next,e.next得到每个连续的元素,但它究竟是如何暂停执行然后在正确的位置恢复的?我知道如果将0.upto中的yield替换为Fiber.yield则很容易理解,但此处并非如此。这是一

ruby-on-rails - gem install nokogiri -v '1.5.11' 由于 make :/usr/local/bin/gmkdir: No such file or directory 而失败

Rubyversion:2.2.5MacOSX:10.11.5Gemversion:2.4.8Bundlerversion:1.12.5当我运行geminstallnokogiri-v'1.5.11'时,出现以下错误:Buildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingnokogiri:ERROR:Failedtobuildgemnativeextension./Users/hwpeng/.rvm/rubies/ruby-2.2.5/bin/ruby-r./siteconf20160707-31800-

ruby-on-rails - Rails 3/Ruby 1.9.2 Date.tomorrow 不正确

在MacSnowleopard上使用Ruby1.9.2和Rail3ruby-1.9.2-p290:001>Date.today=>Sun,25Sep2011ruby-1.9.2-p290:002>Date.tomorrow=>Tue,27Sep2011ruby日期类是否有问题,或者这与我安装ruby​​的方式有关吗?编辑:ruby-1.9.2-p290:039>Date.current=>Mon,26Sep2011ruby-1.9.2-p290:040>DateTime.now=>Sun,25Sep201120:47:01-0500好吧,railsDate类似乎有点问题。DateTim

ruby - 使用 ruby​​-install/ruby-build 在 Archlinux 上安装 Ruby 2.1.x 和 2.3.x 时出现 OpenSSL 错误

我在Archlinux上使用ruby​​-install构建旧版本的Ruby时遇到了一些问题。我怀疑ruby​​-build也会发生同样的情况。我在尝试安装Ruby2.1.5、2.1.6、2.3.0、2.3.1、2.3.4后看到以下内容。/usr/include/openssl/asn1_mac.h:10:2:error:#error"Thisfileisobsolete;pleaseupdateyoursoftware."#error"Thisfileisobsolete;pleaseupdateyoursoftware."或ossl_ssl.c:465:38:error:‘CRYP

ruby-1.9.3-preview1 上的 ruby​​-debug19

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Rails3.1andRuby1.9.3p125:ruby-debug19stillcrasheswith“Symbolnotfound:_ruby_threadptr_data_type”我在调试ruby​​1.9.3preview1版本时遇到了一些问题。我已经使用rvm和以下命令安装了1.9.3:rvminstall1.9.3--reconfigure--debug-C--enable-pthread并安装了ruby​​-debug19:geminstallruby-debug19----with-rub

ruby - 使用默认值初始化散列并递增 1

我需要一个散列,其键的默认值应为0。(基本上我正在制作一个计数器)。key未知,所以我无法在开始时初始化它们。同样,每次出现该键时,该值都应增加1。我想出了这个:hash={}hash[key]?hash[key]+=1:hash[key]=0这看起来不错而且简短,但我不喜欢在一行代码中重复多次hash[key]。有没有更好的写法? 最佳答案 我想你只需要给散列一个默认值0hash=Hash.new(0)然后对于每次出现的键,你不需要检查它的值,直接增加它:hash[key]+=1引用:Hash#new.