

RubyをVS Codeで使って、以下のコードを出力すると文字化けしてしまいます。

コード：

[code]

    address = {name: "高橋", furigana: "タカハシ", postal: "1234567"}
    
[/code]

出力結果：

[code]

    {:name=>"\u9AD8\u6A4B", :furigana=>"\u30BF\u30AB\u30CF\u30B7", :postal=>"1234567"}
    
[/code]

どのように解決すればよいでしょうか？


CC BY-SA 4.0
2019-02-23T13:08:52.213
52972
2019-02-27T09:12:12.177
2019-02-23T13:13:32.133
3068
32290
question
ruby 文字化け
Ruby / VS Code / 文字化け


文字化けしているわけではなく、文字列リテラルのエンコーディングと、外部エンコーディングが一致しないため、エスケープして表示されています。

おそらく`p`を使っているのだと思いますが、`p`は基本的にデバッグ用のメソッドで、エンコーディングが一致しない場合このような動作をします。

外部エンコーディングをUTF-8に合わせてしまう方法があります。

  1. 「ファイル名を指定して実行」やコマンドプロンプトから`sysdm.cpl`を起動
  2. 「詳細設定」タブ
  3. 「環境変数」ボタン
  4. ユーザー環境変数の法の「新規」ボタン
  5. 「変数名」`RUBYOPT`、変数値`-EUTF-8`
  6. OKですべて閉じる
  7. VS Codeを再起動 

ただし、日本語のWindows環境では外部エンコーディングがWindows-31Jであることが一般的なため、それを前提に書かれている既存のスクリプトは誤動作するかもしれません。


CC BY-SA 4.0
2019-02-27T09:12:12.177
53067
2019-02-27T09:12:12.177
5793
52972
answer