Tag: iconv

Ruby Iconv适用于irb和ruby调试器,但不适用于unit testing

我在Ubuntu 10.04 64位上运行带有Rails 2.3.5的Ruby 1.8.7。 我写了一个方法,应该采用这样的字符串, “École À la Découverte”并输出一个文件系统名称,如”ecole_a_la_decouverte” : (Iconv.new(‘US-ASCII//TRANSLIT’, ‘utf-8’).iconv “École À la Découverte”).downcase.split.join(‘_’) 当我在我的代码中测试这一行时,测试总是失败,说”cole_la_dcouverte”不等于”ecole_a_la_decouverte” 。 奇怪的是,如果我插入调试器行并使用调试器控制台,则测试通过。 同样,在irb和./script/console手动运行此行似乎也可行。 有谁知道发生了什么以及为什么这个测试失败了? 我唯一的想法是包括调试器或irb以某种方式增加了对UTF-8的更多支持,但我不知道下一步该去哪里。 提前致谢!

从Ruby 1.8.7到系统调用iconv将文件从utf-16转换为utf-8

这是我得到的: path_js = ‘path/to/a/js/file.js’ path_new_js = ‘path/where/the/converted/file/should/go.js’ puts(‘iconv -f utf-16le -t utf-8 ‘ + path_js + ‘ > ‘ + path_new_js) system(‘iconv -f utf-16le -t utf-8 ‘ + path_js + ‘ > ‘ + path_new_js) puts语句的输出是: iconv -f utf-16le -t utf-8 path/to/1-1-2_E1_MC105.js > compiled/path/to/1-1-2_E1_MC105.js 如果我在终端中复制粘贴完全相同的行,则转换会成功进行,但是当它在我的ruby脚本中运行时,新文件的创建编码与原始文件相同(在本例中为utf-16)。 关于什么是缺失/错误的任何想法? 干杯! 更新:我使用的是Mac OS X Snow Leopard,我使用ruby 1.8.7(系统默认)和1.9.2(使用RVM安装)尝试了相同的脚本。 我也尝试了以下内容: f […]

使用Ruby中的Watir填充text_field时的编码问题

我正在使用Watir填写一个text_field,其中包含我之前使用其他程序编写的html代码。 我正在转移的网站内容的语言是德语,因此涉及一些特殊字符,这些字符在英语字母表中不存在。 这些字符在html文件中正确显示,但是当转移到Joomla安装的text_field(我用这个程序将网站转移到Joomla)时,特殊字符无法正确显示。 由于用户的帮助很大,我已经能够解决以前的问题,并且现在使用以下方法传输内容: browser.text_field(:id => “text”).value=(open(‘my-site.html’) { |f| f.read }) 结果是,特殊字符显示如下: über => ³ber vergißt => vergi▀t wählen => wõhlen geförderter => gef÷rderter 用户猜测它与我正在使用的代码页和编码问题有关。 运行DOS:chcp导致输出850。 他试图解决这个问题的方法如下: require ‘iconv’ browser.text_field(:id => “text”).value=( Iconv.iconv(‘CP850’, ‘ISO-8859-1’, open(‘my-site.html’) { |f| f.read }) ) 不幸的是,这并没有解决问题,特殊字符现在显示为:\ x81ber =übervergi\ xE1t =vergißt,新行显示为\ n 我使用Mechanize抓取了页面,使用以下代码: auszug=page.search (‘/html/body/table/tr/td/table/tr[2]/td/table/tr/td[4]’) outputFile<<auszug 我希望你能以某种方式帮助我,因为我只是一名志愿者,在这里工作,有一点编程经验。 如果我没有在下周运行这个程序(这个编码的东西是唯一真正阻止我的东西),那么我将不得不使用copy + paste手动传输一百页:/ 感谢您花时间和所有的努力! […]

Tab / LF / CR unicode字符

我有一个Unicode文件(UTF-16 FFFE little-endian BOM),它包含多个以制表符分隔的字段。 在ruby中使用.split读取拆分unicode(我认为) ,我将使用Ruby拆分(文件到行,然后行到字段)。 BTW,什么是Unicode字符: 如果 CR 标签 谢谢!

使用Ruby上载文件字符集转换

我有一个应用程序,我们让客户上传一个csv文件到我们的服务器。 然后我们处理并将来自csv的数据放入我们的数据库中。 我们遇到了一些char-sets的问题,特别是当我们处理JSON时,特别是一些非转换的UTF-8字符在JSON响应上打破了IE。 有没有办法在我们开始处理之前将上传的csv文件转换为UTF-8? 有没有办法确定上传文件的字符编码? 我玩过iconv但我们并不总是确定上传文件的编码方式。 谢谢。

使用www :: mechanize时的Iconv :: IllegalSequence

我正在尝试做一些webscraping,但WWW:Mechanize gem似乎不喜欢编码和崩溃。 post请求导致302重定向(跟随机械化,到目前为止很好),结果页面似乎崩溃了。 我google了很多,但到目前为止没有任何问题可以解决这个问题。 你们中有人有个主意吗? 码: require ‘rubygems’ require ‘mechanize’ agent = WWW::Mechanize.new agent.user_agent_alias = ‘Mac Safari’ answer = agent.post(‘https://www.budget.de/de/reservierung/privatkunden/step1/schnellbuchung’, {“Country” => “Deutschland”, “Abholstation” => “Aalen”, “Abgabestation” => “Aalen”, “Abholdatum” => “26.02.2009”, “Abholzeit_stunde” => “13”, “Abholzeit_minute” => “30”, “Abgabedatum” => “28.02.2009”, “Abgabezeit_stunde” => “13”, “Abgabezeit_minute” => “30”, “CountryID” => “DE”, “AbholstationID”=>”AA1”, “AbgabestationID”=>”AA1” } ) puts […]

在Ruby 1.9.X中等效的Iconv.conv(“UTF-8 // IGNORE”,…)?

我正在从远程源读取数据,偶尔会在另一个编码中获得一些字符。 它们并不重要。 我想获得一个“最佳猜测”utf-8字符串,并忽略无效数据。 主要目标是获取我可以使用的字符串,而不是遇到如下错误: 编码:: UndefinedConversionError:从ASCII-8BIT到UTF-8的“\ xFF”: utf-8中的字节序列无效

使用Ruby将UTF8转换为ANSI

我有一个Ruby脚本,可以在Linux机器上远程生成UTF8 CSV文件,然后通过SFTP将文件传输到Windows机器。 然后我需要用Excel打开这个文件,但Excel没有得到UTF8,所以我总是需要在文本编辑器中打开文件,该编辑器能够将UTF8转换为ANSI。 我希望使用Ruby以编程方式执行此操作并避免手动转换步骤。 最简单的方法是什么? PS:我尝试过使用iconv但没有成功。

通过ruby2.0.0在Windows上安装iconv时出错

通过ruby2.0.0在Windows上安装iconv时出错 通过ruby2.0.0在Windows上安装iconv时出错 我正在尝试安装iconv,但是当我运行以下命令时: gem install iconv 我的结果: Temporarily enhancing Path to include DevKit… Building native extensions. This could take a while… Error : Error installing iconv: ERROR: Failed to build gem native extension. C:/Ruby/Ruby200/bin/ruby.exe -r ./siteconf20150217-3212-i8hzmh.rb extconf.rb checking for rb_enc_get() in ruby/encoding.h… yes checking for rb_sys_fail_str() in ruby.h… yes checking for iconv() in iconv.h… no […]

用Ruby中的Iconv音译

当我试图音译一个西里尔字母utf-8字符串时 Iconv.iconv(‘ascii//ignore//translit’, ‘utf-8′, string).to_s (参见问题/ 1726404 / transliteration-in-ruby ) 除了那些必须被音译的符号之外,我得到了所有东西。 例如:’r-строка’→’r-‘和’Gévry’→’Gvry’。 怎么了? Ruby 1.8.7 / Rails 2.3.5 / WSeven