2012-01-04 57 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