Tag: 编码

如何将HTTParty与UTF-8编码一起使用?

我有一个像http://example.com/tag/София/new.json这样的url,我想用HTTParty发出GET请求。 当我做: HTTPArty.get“ http://example.com/tag/София/new.json 我明白了: URI::InvalidURIError at / bad URI(is not URI?): link here 任何想法如何处理这个?

使用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手动传输一百页:/ 感谢您花时间和所有的努力! […]

Ruby和MySQL的UTF-8字符

我正在将Sinatra应用程序从SQLite3切换到MySQL。 出于某些原因,我无法理解,当我使用Ruby和Sequel从MySQL中提取数据时,字符以8-BIT ASCII而不是UTF-8出现。 部署环境是FreeBSD 9.1和MySQL 5.6.12,从FreeBSD端口安装了系统范围的ruby19。 RVM ruby​​-2.0p247产生相同的结果。 我的my.cnf如下: # The following options will be passed to all MySQL clients [client] default-character-set=utf8 #password = your_password port = 3306 socket = /tmp/mysql.sock # Here follows entries for some specific programs # The MySQL server [mysqld] port = 3306 socket = /tmp/mysql.sock skip-external-locking key_buffer_size = 128M max_allowed_packet […]

在我的ramaze app上显示£符号时,我收到“不兼容的字符编码:CP850和UTF-8”

在我的ramaze应用程序上显示£符号时,我收到“不兼容的字符编码:CP850和UTF-8”。 我怎样才能摆脱这个错误? 我的head标签中有UTF-8元标记。 当我用键盘输入£符号时会发生这种情况。 看。 我已将以下代码放在我的ruby文件中,但它没有解决问题。 # encoding: UTF-8 Encoding.default_external = ‘utf-8’ Encoding.default_internal = Encoding::UTF_8

如何在Rails中解析CSV时更改编码

我想知道如何在导入和解析CSV文件时更改CSV文件的编码。 我有这个代码: csv = CSV.parse(output, :headers => true, :col_sep => “;”) csv.each do |row| row = row.to_hash.with_indifferent_access insert_data_method(row) end 当我读取我的文件时,我收到此错误: Encoding::CompatibilityError in FileImportingController#load_file incompatible character encodings: ASCII-8BIT and UTF-8 我读到了关于row.force_encoding(‘utf-8′)但它不起作用: NoMethodError in FileImportingController#load_file undefined method `force_encoding’ for # 谢谢。

Ruby 1.9 – 无效的多字节字符(utf-8)

我有一个只有这两行的ruby文件: # encoding: utf-8 puts “—” 当我用ruby test_enc.rb运行它时失败了: test_enc.rb:2: invalid multibyte char (UTF-8) test_enc.rb:2: unterminated string meets end of file 我不知道如何正确指定— (emdash)的字符代码,但是vim告诉我它是151, Hex 97, Octal 227 。 对于像ã这样的其他角色,它也会失败,所以我怀疑它与该角色有特殊关系。 我在Windows XP上运行,我使用的ruby版本是: ruby 1.9.1p430 (2010-08-16 revision 28998) [i386-mingw32] 我觉得这里有一些非常明显的东西。 有任何想法吗? 编辑:今天学到了关于假设的宝贵教训 – 特别是假设你的编辑使用UTF-8而没有实际检查它。 哎呀! 感谢所有快速准确的回复! 再次编辑: “为utf-8正确设置vim”变得太大了,并且与这个问题无关,所以它现在是一个单独的问题 。

Ruby兼容性错误编码

我遇到了问题。 我们看看吧: C:\ temp> ruby​​ script.rb script.rb => Powershell output puts “ę” => ę #irb \xA9 puts “\xA9” => ▯ puts “ę”==”\xA9″ => false input = $stdin.gets.chomp => input==”ę” puts “e#{input}e” => eęe puts “ę”==input => false puts “ę#{input}” => Encoding::Compatibility Error Utf8 & CP852 irb => #command line in ruby puts “ę”==”\xA9” => true […]

删除ruby中的奇怪无效字符

我有一些XML内容(UTF-8),其中包含无效字符(当我尝试用Nokogiri::XML(content)解析内容时Line 2190, SyntaxError: PCDATA invalid Char value 15 nokogiri告诉我Line 2190, SyntaxError: PCDATA invalid Char value 15 )。 该字符在Sublime Text编辑器中显示为“SI”: 当我尝试复制角色时,没有任何东西被复制,所以我甚至无法查找它。 当我在Atom编辑器中打开它时,不显示“SI”。 但是,当我使用右键单步执行字符时,我必须键入两次以覆盖放置“SI”字符的位置。 首先,这是什么角色? 第二:在Ruby中有没有办法删除这些字符。 我试着用content.chars.select{|i| i.valid_encoding?}.join content.chars.select{|i| i.valid_encoding?}.join但它不会删除该字符。 更新 我通过用ruby读取原始文件找到了这个角色。 字符是\u000F和”\u000F”.ord返回字符代码15 。 关于http://www.fileformat.info/info/unicode/char/000f/index.htm,这是一个SHIFT IN字符。 还有其他类似的人物吗? 我可以使用str.split(“\u000F”).join来删除它们,但如果还有其他这样的字符,这似乎不是一个好方法。 有任何想法吗?

显示用户输入的ASCII-8BIT字符时出现“不兼容的字符编码:UTF-8和ASCII-8BIT”错误

用户将文本保存在带有“café”字样的表单中(注意“é”)。 当加载显示此文本的#show页面时,我得到一个带有消息incompatible character encodings: UTF-8 and ASCII-8BIT的Encoding::CompatibilityError错误incompatible character encodings: UTF-8 and ASCII-8BIT 。 错误可以在控制台中重复: > r = Report.find(123) # load the record > r.update(:comments => “café”) => true > r.comments => “caf\xC3\xA9” > r.comments.encoding => # > r.comments.encode(“UTF-8”) Encoding::UndefinedConversionError: “\xC3” from ASCII-8BIT to UTF-8 from (irb):11:in `encode’ 在#show页面上显示该字段( )会产生错误。 由于数据库列编码设置为UTF-8,并且许多应用程序配置将编码定义为“UTF-8”,因此编码不是UTF-8,而是ASCII-8BIT,似乎是错误的。 理想情况下,“é”以其输入的方式显示而没有任何错误,但在这一点上,我只会采取一种方法来避免错误。 似乎我的所有forms(几十个)都容易受此影响。 有没有办法允许显示ASCII-8BIT字符? 强制编码( )会产生所需的结果,避免错误并正确显示字符,从而导致以下解决方法: […]

Ruby 1.9和Sass编码问题。 (从ASCII-8BIT到UTF-8)

我最近升级到Ruby 1.9,我再也无法使用Sass编译任何内容。 我已经看到了解决方案,如果我放置 @charset “utf-8″; 在我的.sccs文件的顶部,它将修复它。 但是我仍然收到错误。 这是完整的追溯 我也尝试从我的CSS文件中删除任何非ascii字符,创建一个新的等等。它只是不会编译。 有小费吗? 追溯: 萨斯正在关注变化。 按Ctrl-C停止。 /home/webdev/.gem/repository/gems/sass-3.1.1/lib/sass/util.rb:496:in`coding’:不支持转码(从ASCII-8BIT到UTF-8)(ArgumentError) 来自/home/webdev/.gem/repository/gems/sass-3.1.1/lib/sass/util.rb:496:in _enc’ from /home/webdev/.gem/repository/gems/sass-3.1.1/lib/sass/util.rb:515:in在块中抢救(1级) 来自/home/webdev/.gem/repository/gems/sass-3.1.1/lib/sass/util.rb:508:in`block(1 levels)in’ 来自/home/webdev/.gem/repository/gems/sass-3.1.1/lib/sass/util.rb:472:in“yield” 来自/home/webdev/.gem/repository/gems/sass-3.1.1/lib/sass/util.rb:472:in’default’ 来自/home/webdev/.gem/repository/gems/sass-3.1.1/lib/sass/util.rb:472:in,clock in check_sass_encoding’ 来自/home/webdev/.gem/repository/gems/sass-3.1.1/lib/sass/util.rb:471:in“each” 来自/home/webdev/.gem/repository/gems/sass-3.1.1/lib/sass/util.rb:471:in`find’ 来自/home/webdev/.gem/repository/gems/sass-3.1.1/lib/sass/util.rb:471:in`check_sass_encoding’ 来自/home/webdev/.gem/repository/gems/sass-3.1.1/lib/sass/engine.rb:349:in`check_encoding!’ 来自/home/webdev/.gem/repository/gems/sass-3.1.1/lib/sass/engine.rb:316:in`_to_tree’ 来自/home/webdev/.gem/repository/gems/sass-3.1.1/lib/sass/engine.rb:291:in`_render’ 来自/home/webdev/.gem/repository/gems/sass-3.1.1/lib/sass/engine.rb:238:在`render’中 来自/home/webdev/.gem/repository/gems/sass-3.1.1/lib/sass/plugin/compiler.rb:319:in`update_stylesheet’ 来自/home/webdev/.gem/repository/gems/sass-3.1.1/lib/sass/plugin/compiler.rb:169:in在update_stylesheets中的块 来自/home/webdev/.gem/repository/gems/sass-3.1.1/lib/sass/plugin/compiler.rb:167:in“each” 来自/home/webdev/.gem/repository/gems/sass-3.1.1/lib/sass/plugin/compiler.rb:167:in`update_stylesheets’ 来自/home/webdev/.gem/repository/gems/sass-3.1.1/lib/sass/plugin/compiler.rb:214:in`watch’ 来自/home/webdev/.gem/repository/gems/sass-3.1.1/lib/sass/plugin.rb:111:in`method_missing’ 来自/home/webdev/.gem/repository/gems/sass-3.1.1/lib/sass/exec.rb:408:in`watch_or_update’ 来自/home/webdev/.gem/repository/gems/sass-3.1.1/lib/sass/exec.rb:294:in,process_result’ 来自/home/webdev/.gem/repository/gems/sass-3.1.1/lib/sass/exec.rb:41:in“parse” 来自/home/webdev/.gem/repository/gems/sass-3.1.1/lib/sass/exec.rb:21:in“解析!” 来自/home/webdev/.gem/repository/gems/sass-3.1.1/bin/sass:8:in`’ 来自/home/webdev/.gem/repository/bin/sass:19:in”load’ 来自/home/webdev/.gem/repository/bin/sass:19:in`’