2012-01-04 30 views
0

当在rake构建中输出到文件时,我们遇到字符“ä”的问题。它被作为TeamCity环境变量中字符串的一部分传递给rake。然后输出到具有以下代码的文件:TeamCity Rake环境变量Encoding :: UndefinedConversionError:从ASCII-8BIT到UTF-8的“ x84”

output = File.new("#{path}", "w") 
output.write("#{content}") 
output.close 

该字符输出为“”“。因此,我们尝试:

File.open("#{path}", "wt", encoding: 'UTF-8') do |f| 
    f.puts "#{content}" 
end 

,这导致错误

编码:: UndefinedConversionError: “\ X84” 从ASCII-8BIT为UTF-8

有人建议在其他地方是使用force_encoding像这样:

f.force_encoding("UTF-8") 

但是这会导致根本没有输出字符。

我们需要输出正确的字符。

回答

2

我发现解决这个问题的唯一方法是使用html/xhtml代码。

“ä”的一个是ä。 TeamCity使用ascii代码呈现文件,但打开文件时会正确读取该文件。

看到这页的代码清单 - 你必须改变它们才能使它工作:http://webdesign.about.com/library/bl_htmlcodes.htm