2
這裏是我的Ruby腳本:無效字符從其他客戶端調用返回
#!/usr/bin/env ruby
# -*- encoding : utf-8 -*-
(...)
begin
response = RestClient.post props['server']['host'] + post_to + "?auth=" + props['server']['auth'],
model_name => o, :content_type => :json, :accept => :json
rescue => e
response = e.response
end
if response.code != 201
puts "Erro ao salvar #{model_name} #{o[descriptor]}: " + response.to_str
end
這是相當不錯的了,但是,當我的模型有一些無效的字段,我在response.to_str
返回消息應該是:
"{"kind":["S\u00f3 \u00e9 permitido uma matriz por dom\u00ednio."]}"
我已經檢查:
"{"kind":["Só é permitido uma matriz por domínio."]}"
作爲被印刷,返回的字符集確實是utf-8
。
如果我嘗試:
if response.code != 201
puts "{\"kind\":[\"S\u00f3 \u00e9 permitido uma matriz por dom\u00ednio.\"]}"
puts "{\"kind\":[\"Só é permitido uma matriz por domínio.\"]}"
puts response.to_str
end
第一和第二輸出被正確地打印,但第三個不是。爲什麼!?
我使用Ubuntu並從gnome終端調用此腳本。
看起來這不是一個紅寶石問題。您的REST服務可能會使用雙斜線或類似的方式編碼UTF。 Woukld你用有點'Firebug'來檢查純REST-答案? – mudasobwa 2013-02-16 05:22:37