scalaでChatworkとJIRA連携させて、Chatworkでコマンド打つとJIRAのAPIで色々できるbotを作ったんですが、チケットを作るときに日本語で文字化けしてしまっていました
JIRAってREST API使ってIssue作ろうとすると、日本語文字化けしちゃう??
— Takafumi Hirata (@takhirata) 2014, 1月 15
あ、API使ってJIRAのIssue作ると文字化けすると思ったけどcurlでできてるからコードの問題か。。。
— Takafumi Hirata (@takhirata) 2014, 1月 15
curlならできるので何かしらscalaのコードの問題だったんですが、イマイチわからず。
Content-Typeでapplication/json; charset=utf-8にしてみたり、new String(s, "UTF-8")とかしてみたりしたんですがうまくいかず。
と思っていたら、単純な話で、dispatchというかcom.ning.http.client.RequestBuilderにsetBodyEncoding
というのがありました
dispatchだと、Reqに対して
req.subject.underlying { _.setBodyEncoding("UTF-8") }
でできます。(ぱっと見それ用に用意されているメソッドは見つけられなかった。)
これでEncodingをセットしてやったらうまくいきましたとさ。