Windowsでrubyのpすると日本語が化けるんです

あとto_sqlをpするとダブルクオートがいちいちエスケープされてすごくうざいんです。。

結論

  • pやめてputsする。
  • rubyの引数に-E Windows-31J:UTF-8を追加する

pはそのオブジェクトがなんなのかちゃんと分かるように出力するとか、そういう役割があるみたいですね。楽ちんだからとずっとpしてました……

q = Employee.where(id: 209)
p "to_sqlすると……#{q.to_sql}"
puts "to_sqlすると……#{q.to_sql}"
PS$ruby .\hr.rb
"to_sql\u3059\u308B\u3068\u2026\u2026SELECT \"EMPLOYEES\".* FROM \"EMPLOYEES\"  WHERE \"EMPLOYEES\".\"ID\" = 209"
to_sql縺吶k縺ィ窶ヲ窶ヲSELECT "EMPLOYEES".* FROM "EMPLOYEES"  WHERE "EMPLOYEES"."ID" = 209
PS$ruby -E Windows-31J:UTF-8 .\hr.rb
"to_sqlすると……SELECT \"EMPLOYEES\".* FROM \"EMPLOYEES\"  WHERE \"EMPLOYEES\".\"ID\" = 209"
to_sqlすると……SELECT "EMPLOYEES".* FROM "EMPLOYEES"  WHERE "EMPLOYEES"."ID" = 209

(^ω^)にこっ

参考