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なんだけどな。
設定ファイルを一応ヘルプから生成しておいた。
すでにUTF-8なのでCharsets.UTF_8
は不要だと思う運だけどな・・。
ちなみにtoString()
とname()
で結果が変わった。