ruby on railsでjsonの中身が文字化け(?)してしまう
解決したいこと
ruby on railsで外部apiを使用して帰ってきたgzipを解凍したのですが、jsonの中身が文字化け(?)してしまっています。
解決法を教えてください。
発生している問題・エラー
最終的なjsonファイルのuncompressed_string
の中身が下記のようになっています。
{"title":"\u52c7\u8005\u53ec\u559a\u306b\u5dfb\u304d\u8fbc\u307e\u308c\u305f\u3051\u3069\u3001\u7570\u4e16\u754c\u306f\u5e73\u548c\u3067\u3057\u305f","writer":"\u706f\u53f0","story":"\u3042\u308b\u65e5\u7a81\u7136\u7570\u4e16\u754c\u3078\u3001\u3069\u3046\u3084\u3089\u52c7\u8005\u53ec\u559a\u306b\u5dfb\u304d\u8fbc\u307e\u308c\u305f\u3089\u3057\u3044\u3002\u5f53\u7136\u52c7\u8005\u306f\u4ffa\u3067\u306f\u306a\u304f\u5225\u306e\u4eba\u2026\u2026\u6b63\u306b\u738b\u9053\u3068\u3082\u3044\u3048\u308b\u5c55\u958b\u306b\u7591\u5fc3\u6697\u9b3c\u3092\u52df\u3089\u305b\u306a\u304c\u3089\u3001\u4ffa\u306f\u6226\u4e71\u306b\u8eab\u3092\u6295\u3058\u3066\u3044\u304f\u2015\u2015\u306a\u3093\u3066\u4e8b\u306f\u5168\u304f\u7121\u304b\u3063\u305f\u3002\n\n\u9b54\u738b\uff1f\u30001000\u5e74\u524d\u306b\u5012\u3055\u308c\u307e\u3057\u305f\u3002\u52c7\u8005\uff1f\u3000\u304a\u796d\u308a\u306e\u4e3b\u5f79\u3067\u3059\u3002\u8cb4\u65cf\uff1f\u3000\u89aa\u8eab\u306b\u306a\u3063\u3066\u4e16\u8a71\u3092\u713c\u3044\u3066\u304f\u308c\u307e\u3059\u3002\u9b54\u65cf\uff1f\u3000\u4eba\u9593\u3068\u826f\u597d\u306a\u95a2\u4fc2\u3067\u3059\u3002\u6226\u4e89\uff1f\u3000800\u5e74\u4ee5\u4e0a\u8d77\u3063\u3066\u307e\u305b\u3093\u3002\u9b54\u7269\uff1f\u3000\u30ae\u30eb\u30c9\u3068\u9a0e\u58eb\u56e3\u304c\u5bfe\u5fdc\u3057\u307e\u3059\u3002\u9001\u9084\uff1f\u3000\u6700\u7d42\u7684\u306b\u30ce\u30fc\u30ea\u30b9\u30af\u3067\u5e30\u308c\u307e\u3059\u3002\n\n\u5dfb\u304d\u8fbc\u307e\u308c\u305f\u4ffa\u306e\u4eca\u5f8c\u306f\u3069\u3046\u306a\u308b\u306e\uff1f\u3000\u3053\u306e\u7570\u4e16\u754c\u3092\u5b58\u5206\u306b\u697d\u3057\u3093\u3067\u9802\u304d\u3001\u4ea4\u6d41\u3084\u89b3\u5149\u3092\u884c\u3063\u3066\u3082\u3089\u3044\u300110\u5e74\u306b1\u5ea6\u306e\u4e16\u754c\u3092\u3042\u3052\u3066\u306e\u304a\u796d\u308a\u3092\u4f53\u9a13\u3057\u305f\u5f8c\u2026\u2026\u602a\u6211\u7121\u304f\u7121\u4e8b\u306b\u304a\u5e30\u308a\u9802\u304d\u307e\u3059\u3002\n\n\u7570\u4e16\u754c\u306f\u2015\u2015\u5e73\u548c\u3067\u3057\u305f\u3002\n\n\u9b54\u754c\u306e\u9b54\u65cf\u3001\u795e\u754c\u306e\u795e\u65cf\u3001\u4eba\u754c\u306e\u4eba\u65cf\u30013\u3064\u306e\u4e16\u754c\u30683\u3064\u306e\u7a2e\u65cf\u304c\u89aa\u3057\u304d\u96a3\u4eba\u3068\u306a\u3063\u3066\u904e\u3054\u3059\u5e73\u548c\u3067\u512a\u3057\u3044\u4e16\u754c\u3002\n\n\u5e30\u9084\u307e\u3067\u306e1\u5e74\u3092\u5e73\u7a4f\u306b\u904e\u3054\u3057\u305f\u3044\u3068\u601d\u3046\u6c17\u6301\u3061\u3068\u306f\u88cf\u8179\u306b\u3001\u4f55\u6545\u304b\u4ffa\u306e\u5468\u308a\u306b\u306f\u5404\u754c\u306e\u91cd\u93ae\u3070\u304b\u308a\u304c\u96c6\u307e\u3063\u3066\u6765\u3066\u2026\u2026\n\n\u203b\u30e2\u30fc\u30cb\u30f3\u30b0\u30b9\u30bf\u30fc\u30d6\u30c3\u30af\u30b9\u69d8\u3088\u308a\u66f8\u7c4d\u72481\u5dfb\uff5e11\u5dfb\u3000\u597d\u8a55\uff1f\u767a\u58f2\u4e2d\u3067\u3059\uff01\n\u203b\u30b3\u30df\u30ab\u30e9\u30a4\u30ba\uff01 \u6708\u520a\u30b3\u30f3\u30d7\u30a8\u30fc\u30b9\u306b\u3066\u9023\u8f09\u4e2d\u3067\u3059\uff01\u3000\u30b3\u30df\u30ab\u30e9\u30a4\u30ba\u7248\u306f\u73fe\u57284\u5dfb\u307e\u3067\u767a\u58f2\u3055\u308c\u3066\u3044\u307e\u3059\uff01","genre":201,"keyword":"R15 \u7570\u4e16\u754c\u8ee2\u79fb \u7570\u4e16\u754c \u9b54\u6cd5 \u604b\u611b \u30cf\u30fc\u30ec\u30e0 \u307b\u306e\u307c\u306e \u4ea4\u53cb\u30c1\u30fc\u30c8 \u30b9\u30ed\u30fc\u30e9\u30a4\u30d5 \u5e7c\u5973\u30e1\u30a4\u30f3\u30d2\u30ed\u30a4\u30f3 \u8cb4\u65cf \u4e3b\u4eba\u516c\u51e1\u4eba \u30d2\u30ed\u30a4\u30f3\u304c\u6700\u5f37 \u661f\u7403\u5927\u8cde","general_lastup":"2021-10-09 18:00:00","noveltype":1,"end":1,"general_all_no":939,"length":2976914}
該当するソースコード
以下が実行プログラムです。
url = "https://api.syosetu.com/novelapi/api/"
query = { out: "json", ncode: "n6316bn" ,gzip: 5, of: "t-w-s-nt-gl-ga-e-l-g-k"}
client = HTTPClient.new
response = client.get(url, query)
require 'zlib'
require 'stringio'
gz = Zlib::GzipReader.new(StringIO.new(response.body.to_s))
uncompressed_string = gz.read
gzipの解凍方法もよくわからず、以下のサイトを参考にしました。
よろしくお願いします。
0