LoginSignup
0
1

More than 5 years have passed since last update.

ScalaのDispatchで日本語文字列をPOSTすると文字化けしたのを解決したときのメモ

Posted at

すごくはまったのでメモ

ScalaのDispatchを使って日本語文字列をPOSTすると、送信する時点で????????となってしまい大いに悩みました。

たくさんぐぐって以下のサイトで解決することができました。

dispatch使ったbotで日本語文字化けしていた件

結論2つの文字コード指定が必須みたいです。

  • Content-Typeに文字コードを指定すること
  • urlから生成されたオブジェクトにsubject.underlying { _.setBodyEncoding("UTF-8")}を指定すること
def getGeonlp(kw: String): String = {
    val svc = url("http://example.com/hoge.php").POST
        .setBody("""{"method":"parse", "params":["""" + kw + """",{"geojson":true}], "id":0}""")
        .setHeader("Accept", "application/json")
        .setHeader("Content-Type", "application/json; charset=utf-8") // このcharsetが必須
    svc.subject.underlying { _.setBodyEncoding("UTF-8") } // この行が必須
    val future = Http(svc OK as.String)

    val f = future()
    println(f)
    println(f.length)
    f
}
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1