万年素人からHackerへの道

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

  • ・資産運用おすすめ
    10万円は1000円くらい利益
    資産運用ブログ アセマネ
    • ・寄付お願いします
      YENTEN:YYzNPzdsZWqr5THWAdMrKDj7GT8ietDc2W
      BitZenny:ZfpUbVya8MWQkjjGJMjA7P9pPkqaLnwPWH
      c0ban:8KG95GXdEquNpPW8xJAJf7nn5kbimQ5wj1
      Skycoin:KMqcn7x8REwwzMHPi9fV9fbNwdofYAWKRo

    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()で結果が変わった。