Tag: utf 8

即使在force_encoding之后,Rails / Ruby也会在UTF-8中无效字节序列

我正在尝试在Rails中迭代一个远程nginx日志文件(压缩.gz文件),我在文件中的某个位置收到此错误: TTPArgumentError: invalid byte sequence in UTF-8 我尝试强制编码,虽然看起来编码已经是UTF8: logfile = logfile.force_encoding(“UTF-8”) 我正在使用的方法: def remote_update uri = “http://” + self.url + “/localhost.access.log.2.gz” source = open(uri) gz = Zlib::GzipReader.new(source) logfile = gz.read # prints UTF-8 print logfile.encoding.name logfile = logfile.force_encoding(“UTF-8”) # prints UTF-8 print logfile.encoding.name logfile.each_line do |line| print line[/\/someregex\/1\/(.*)\//,1] end end 真的试图理解为什么会发生这种情况(试图查看其他SO线程但没有成功)。 这有什么不对? 更新: 添加了exception的跟踪: HTTPArgumentError: […]

表情符号在mongodb中没有正确保存

我将表情符号从twitter和Instagram保存到我的mongodb数据库中。 但是当我从数据库中显示拉出的数据时。 表情符号看起来像这样❤️ ☀️ 在将数据保存到mongodb期间,我需要做些什么不同,我是mongodb的新手。 我已经阅读了表情符号使用utf8-mb4编码,但mongodb只支持UTF8。

有没有办法在Ruby中清除“UTF-8中无效字节序列”错误的文件?

在发布到StackOverflow之前我已尝试过所有内容我真的希望有人可以提供帮助,但我非常绝望。 所以,我有一个服务,通过客户提供的XML提要将数据上传到我们的数据库。 这些XML文件通常声称是UTF-8编码,但显然有很多无效的字节序列。 我可以通过在导入之前运行以下Linux命令来清理这些文件并将它们完美地导入我们的数据库: tr -cd ‘^[:print:]’ clean.xml 只需运行这一个Linux命令,我就可以使用Rails中的Nokogiri将所有数据导入我的数据库。 问题是我们正在Heroku上部署,我无法使用Linux命令预处理该文件。 我花了上周的时间在Internet上搜索基于Rails的本地解决方案来解决这个问题,但是没有一个能够解决问题。 在我完成我尝试过的所有建议之前,这是我的原始代码: data_source = ARGV[0] data_file = open data_source data_string = data_file.read doc = Nokogiri::XML.parse(data_string) doc.xpath(“.//job”).each do |node| hash = node.element_children.each_with_object(Hash.new) do |e, h| h[e.name.gsub(/ /,”_”).strip.downcase.to_sym] = e.content data.push(newrow) end end 在原始文件上运行此操作会产生错误:“UTF-8中的字节序列无效” 以下是我尝试过的所有有用的建议,但都失败了。 使用编码器 Coder.clean!(data_string,“UTF-8”) 强制编码 data_string.force_encoding(’BINARY’)。encode(’UTF-8’,:undef =>:replace,:replace =>”) 转换为UTF-16并返回UTF-8 data_string.encode!(’UTF-16’,’UTF-8’,:invalid =>:replace,:replace =>”)data_string.encode!(’UTF-8’,’UTF-16’) 使用valid_encoding? data_string.chars.select […]

将HTML导出为PDF时出现中文和日文字符编码问题

我运行一个基于Web的时间线制作工具,允许用户使用HTML / JavaScript创建时间轴,然后将它们导出为PDF文件,以便在完成后进行打印。 当时间轴包含某些Unicode字符时,我有几个用户报告将时间轴导出为PDF的问题。 例如,这是一个屏幕截图,显示了生成的网页和PDF文件: 我一直试图解决为什么像块元素和格鲁吉亚这样的Unicode字符块会输出但中文和日文不会输出的原因。 此外,当我在本地计算机上执行导出时,导出正常工作,但在Heroku上导出时会导致上述输出。 有谁知道这可能导致什么? 为了完整性,后端在Ruby on Rails中,它使用PDFKit gem将HTML页面转换为PDF,并且该站点在Heroku上托管。

utf8数据在mysql中看起来很好,但在rails中被破坏了

我正在为一位正在使用mac的同事设置一个rails环境(如果相关的话)。 我从我们的实时mysql数据库中删除了数据,并使用该数据创建了一个本地开发数据库。 如果我打开mysql控制台,并查看其名称字段中具有扩展字符集字符的记录的数据,那么它看起来很好。 但是,在rails控制台(以及在rails生成的网页中)中,编码被破坏:例如,endash被替换为“—。 我知道的唯一与之相关的rails配置选项是config / database.yml。 我目前有这套: encoding: utf8 collation: utf8_general_ci 例如,它可以在我的机器上正常工作。 但就像我说它不适用于我同事的机器。 任何人的想法? 编辑1:在实时服务器上,我复制数据FROM,charset信息如下所示: mysql> show variables like ‘char%’; +————————–+—————————-+ | Variable_name | Value | +————————–+—————————-+ | character_set_client | latin1 | | character_set_connection | latin1 | | character_set_database | latin1 | | character_set_filesystem | binary | | character_set_results | latin1 | | character_set_server […]

再次使用rails app的utf8问题

我再站在这里拉我的头发.. 所以我用拉脱维亚语制作应用程序。 所以它需要utf8编码。 我尝试将各种配置放在初始化器中,例如: Encoding.default_internal =编码:: UTF_8 Encoding.default_external =编码:: UTF_8 试过各种评论,比如: #encoding:utf-8 在我的视图布局文件中,我有: 我的数据库连接设置为utf8,实际上并没有问题。 我遇到的问题是,我不能在我的视图中使用UTF8字符。 每次我收到此错误: incompatible character encodings: ASCII-8BIT and UTF-8 我敢肯定,我的文件是用utf8编码的。 我不知道我能做什么,让rails应用程序正确读取utf8。

Ruby on Rails用法语发送flash消息

使用法语在rails应用程序上工作,但是每当我在flash消息中包含重音时,它就会破坏站点。 例如 format.html {redirect_to @message.annonce, notice:”Votre message a été envoyé”} format.html {redirect_to @message.annonce, notice:”Votre email n’a pas pu être envoyer à cause d’une erreur.”} 我的config / application.rb看起来像这样 config.i18n.default_locale = :fr config.encoding = “utf-8” 人们怎么做到这一点?

不兼容的字符编码:ASCII-8BIT和UTF-8,同时在rails中使用javascript

我试图在我的rails 3应用程序版本1.9.3中使用javascript。 当我包含此行%= javascript_include_tag “application” %>我收到以下错误: Encoding::CompatibilityError in Products#index incompatible character encodings: ASCII-8BIT and UTF-8 Extracted source (around line #9): 6: 7: 8: 9: 10: 11:

Rails表示发出GET请求而不是POST请求

我正在制作一个Rails 3.1应用程序并且有一个工作正常的注册表单,但我似乎已经改变了一些东西来打破它..我正在使用Twitter bootstrap和twitter_bootstrap_form_for gem。 我做了一些与表单字段格式相混淆的更改,但更重要的是,当我提交注册表单来创建新用户时,信息显示在URL中,如下所示: 编辑:这是在最新版本的Chrome和Firefox中发生的 HTTP://本地主机:3000 / UTF8 =%E2%9C%93&authenticity_token = UaKG5Y8fuPul2Klx7e2LtdPLTRepBxDM3Zdy8S%2F52W4%3D&用户%5Bemail%5D = kevinc%40example.com&用户%5Bpassword%5D =测试和用户%5Bpassword_confirmation%5D =测试&提交=注册+向上 以下是表单的代码: Sign Up Now! ‘me@example.com’ %> 这是UsersController的代码: class UsersController “Signed up!” else render ‘new’ end end end 不确定是否还有更多需要,但如果有,请告诉我! 谢谢! 编辑:为了调试我尝试指定:post并使用普通的form_for :post) do |f| %> 这给了我与上面相同的问题。 添加routes.rb: Auth31::Application.routes.draw do get “home” => “pages#home” get “about” => “pages#about” get “contact” => […]

如何在Rails中的PDFKit中使用UTF-8?

我在我的Rails应用程序中使用PDFKit来生成PDF。 问题是我的一些内容包含非ascii字符。 如何强制它使用UTF-8?