- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有下一个方法调用:
Formatting.git_log_to_html(`git log --no-merges master --pretty=full #{interval}`)
interval
的值类似于 release-20130325-01..release-20130327-04
。
git_log_to_html
ruby 方法是下一个(我只是粘贴引发错误的行):
module Formatting
def self.git_log_to_html(git_log)
...
git_log.gsub(/^commit /, "COMMIT_STARTcommit").split("COMMIT_STARTcommit").each do |commit|
...
end
end
这曾经有效,但实际上我检查过 gsub 引发了“UTF-8 中的无效字节序列”错误。
您能否帮助我理解为什么以及如何修复它? :/
这是 git_log
的输出:
最佳答案
出于某种原因,这个命令:
git log --no-merges master --pretty=full #{interval}
给您的结果不是以 UTF-8 编码的,可能是您的计算机正在使用不同的字符集,请尝试以下操作:
module Formatting
def self.git_log_to_html(git_log)
...
git_log.force_encoding("utf8").gsub(/^commit /, "COMMIT_STARTcommit").split("COMMIT_STARTcommit").each do |commit|
...
end
end
我不确定这是否有效,但你可以试试。
如果这不起作用,您可以检查 ruby iconv 以检测字符集并将其编码为 utf-8:http://www.ruby-doc.org/stdlib-2.0/libdoc/iconv/rdoc/
根据您在评论中添加的文件,我做了:
require 'open-uri'
content = open('https://dl.dropbox.com/u/42306424/output.txt').read
content.gsub(/^commit /, "COMMIT_STARTcommit").split("COMMIT_STARTcommit")
工作顺利,没有任何问题
顺便说一句,你可以试试:
require 'iconv'
module Formatting
def self.git_log_to_html(git_log)
...
git_log = Iconv.conv 'UTF-8', 'iso8859-1', git_log
git_log.gsub(/^commit /, "COMMIT_STARTcommit").split("COMMIT_STARTcommit").each do |commit|
...
end
end
但在尝试转换为 utf-8 之前,您应该真正检测字符串的字符集。
关于ruby-on-rails - Gsub 提出 "invalid byte sequence in UTF-8",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15728223/
我正在编写一个程序,它将从 who 命令中提取信息并格式化输出。 普通 who 命令: user ip date (ip) user ip date (ip) user ip date (ip) us
我有一个包含以下数据的文件- 输入- A B C D E F A B B B B B C A C D E F A B D E F A A A A A A F A B C B B B 如果从第 2 行开
这个问题在这里已经有了答案: How to prevent regmatches drop non matches? (4 个回答) 5年前关闭。 我正在浏览一个字符向量(大约 10,000 个条目)
我想连续生成一个Employee_ID,我已经在数据库表中修复了一个初始员工ID。格式为“E36162000”,我从表中获取最后一个员工 ID,然后仅提取整数值,然后加一,这将是下一个 employe
使用以下函数,我转到一个站点,抓取一些信息,返回一些 JSON,并将其放入 @price 实例变量中。 返回给我的 JSON 是一个数字,但是如果数字大于 1000,那么数字将包含一个逗号,所以我将其
我在运行脚本时不断收到此错误。我对 Ruby 很陌生,所以请原谅我的傲慢。 我正在使用内置了 JRuby 支持的 Nuix 编写脚本。 这是我的代码; require 'benchmark' requ
我在 R 中工作,并且仅在没有左括号时才尝试删除右括号。我在下面尝试过,但没有返回所需的输出。 test <- data.frame(t1 = c("Book (Pg 1)", "Website On
我正在尝试从 Chandler 中删除标点符号和数字成为Chandler .这是我目前正在尝试的: df$city <- gsub("[[:punct:]]|[[:digit:]]", "", df$
我正在尝试生成结合 n 个高斯的函数,并使用从 nls 中检索到的值跑。我用 gsub用 nls 替换原始系数那些使用反向引用的。然而,似乎[在 \\1 之前对 datafame 进行评估. 这是一个
这个问题在这里已经有了答案: What regex will match every character except comma ',' or semi-colon ';'? (4 个回答) 5年前
我有一个日志数据集: V1 duration id startpoint T161[=]Pexplorer.exe[=]I1820[=]W20094[=]V6.00.2900.5512 777
我正在使用 local mystring = 'Thats a really nice house.' string.gsub(mystring,"% ", "/",1) 用斜杠替换第一个空格字符。
我有一些正在使用的 html 代码。我想提取某些字符串。 我想使用 从字符串 x 中提取它的首选基础 R :coleman_l, SMOG4 这是我所拥有的: x (hi)auto(coleman_l
我希望这是足够不同的相关,之前的帖子来证明它自己的线程是合理的;不幸的是,他们对我没有帮助。我认为我对部分替换的兴趣,加上通配符的使用迄今为止是独一无二的,但如果我只是没有足够仔细地搜索或阅读,我深表
我有一个字符串"ab b cde",即"ab[space]b[space]cde"。我想用空格替换“space-b”和“space-c”,以便输出字符串为"ab[space][space][space
我正在尝试清理一些文本字符串,以便我可以干净地解析出一些脚本信息。对于这些表格,括号中的信息表示脚本的位置或阻塞注释。 我想获取所有括号内的信息,并删除括号及其所有包含的字符。工作中的关键在于,由于数
任何人都可以通过 gsub 帮助实现以下目标在R? input string: a=5.00,b=120,c=0.0003,d=0.02,e=5.20, f=1200.0,g=850.02 desir
给定字符串: smple_paths <- c("/path/path/path/abc22/path/path", "/apath/apath/paath/abc1
似乎当我添加一个特殊字符时 gsub 不再适合我。 我如何使用带有此类字符的文本 print(string.gsub("a !foo walking", "%a+",{ ["!foo"] =
我有一批样本要提交给我的大学集群进行处理。我有超过 1000 个样本需要运行。不必手动创建脚本,我想知道我可以制作一个 for 循环来替换示例 ID。每个脚本本质上是相同的,我只需要更改示例 ID 和
我是一名优秀的程序员,十分优秀!