質問: {name: "高橋", furigana: "タカハシ", postal: "1234567"} ``` 出力結果: ``` {:name=>"\u9AD8\u6A4B", :furigana=>"\u30BF\u30AB\u30CF\u30B7", :postal=>"1234567"} ``` どのように解決すればよいでしょうか?
回答: 文字化けしているわけではなく、文字列リテラルのエンコーディングと、外部エンコーディングが一致しないため、エスケープして表示されています。 おそらく`p`を使っているのだと思いますが、`p`は基本的にデバッグ用のメソッドで、エンコーディングが一致しない場合このような動作をします。 外部エンコーディングをUTF-8に合わせてしまう方法があります。 1. 「ファイル名を指定して実行」やコマンドプロンプトから`sysdm.cpl`を起動 2. 「詳細設定」タブ 3. 「環境変数」ボタン 4. ユーザー環境変数の法の「新規」ボタン 5. 「変数名」`RUBYOPT`、変数値`-EUTF-8` 6. OKですべて閉じる 7. VS Codeを再起動 ただし、日本語のWindows環境では外部エンコーディングがWindows-31Jであることが一般的なため、それを前提に書かれている既存のスクリプトは誤動作するかもしれません。