万年素人からHackerへの道

万年素人がHackerになれるまで殴り書きするぜ。

Kotlin ktor 文字化け

Kotlin ktorのWebでうまく日本語が出ない・・。

call.respondText("へろわ", ContentType.Text.Html)のように書いてだめだったのでこうしたのに。

import org.jetbrains.ktor.netty.*
import org.jetbrains.ktor.routing.*
import org.jetbrains.ktor.application.*
import org.jetbrains.ktor.host.*
import org.jetbrains.ktor.http.*
import org.jetbrains.ktor.response.*
import java.net.URLEncoder // URLEncoder使うため

fun main(args: Array<String>) {
    val server = embeddedServer(Netty, 8080) {
        routing {
            get("/") {
                val msg = "へろわ"
                //var en = URLEncoder.encode(msg, Charsets.ISO_8859_1.toString())
                var en = URLEncoder.encode(msg, Charsets. UTF_8.toString())
                //val en = URLEncoder.encode(msg, Charsets.UTF_8.name())
                call.respondText(en, ContentType.Text.Html)

        }
    }
    server.start(wait = true)
}

ちなみに、IntelliJ IDEAを使っってる。 この辺の設定はUTF-8なんだけどな。 f:id:shinriyo:20170521174508p:plain

設定ファイルを一応ヘルプから生成しておいた。 f:id:shinriyo:20170521174523p:plain

すでにUTF-8なのでCharsets.UTF_8は不要だと思う運だけどな・・。 ちなみにtoString()name()で結果が変わった。