私はUTFに変換したいASCII-BIT8文字列を含むデータのハッシュを提供する不正な宝石(omniauth)を持っています。は非UTF文字を含むハッシュをUTFに変換します
ハッシュのすべての文字列要素をUTFに強制するにはどうすればよいですか? .to_utf8
session[:omniauth] = omniauth.to_utf8
class Hash
def to_utf8
#not really sure what to do here?
end
end
非常に素晴らしい答え – apneadiving
を私は取得しています再帰的にこれは簡単になりません
symbolize_keys
とは異なり、ハッシュを変換し、このラッパーASCII-8BITから変換エラーが発生しました。コンソールから正常に機能しました。エンコーディング:: UndefinedConversionErrorユーザーの:: OmniauthCallbacksController#google_apps "\ xC3"からASCII-8BITへUTF-8 – holdenUTF-8相当(Ã)が必要ですが、この変換はデフォルトではサポートされていないようです。 'v.dup.force_encoding( 'WINDOWS-1252')。encode( 'UTF-8')' – tadman