これが私の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ó é permitido uma matriz por domínio."]}"
次のように印刷されます。
"{"kind":["S\u00f3 \u00e9 permitido uma matriz por dom\u00ednio."]}"
私はすでにチェックresponse.headers
しました、返された文字セットは確かに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
最初と 2 番目の出力は正しく印刷されますが、3 番目の出力は正しくありません。どうして!?
私はUbuntuを使用しており、gnome端末からこのスクリプトを呼び出しています。