在 Suave 中使用非拉丁字符

Using of non latin characters in the Suave

我想在 Suave 中使用非拉丁符号,例如西里尔字母,但结果很奇怪

MCVE

open Suave
open Suave.Filters
open Suave.Operators
open Suave.Successful

let app =
    choose [
        GET >=>  OK "Привет, Мир!" 
    ]

startWebServer defaultConfig app

结果

那么,问题是 - 如何解决?

对于纯文本回复,您需要设置地雷类型编码:>=> setMimeType "text/plain; charset=utf-8"

Set the Content-Type header to the mime type given. Remember that it should include the encoding of your content. So for example, specifying a mimeType value of 'application/json; charset=utf-8' is strongly recommended (but replace 'json' with your own MIME type, of course ;))

这看起来像 UTF-8 被解释为 Latin-1。尝试将 >=> setMimeType "text/html; charset=utf-8" 添加到您的应用程序,看看这是否会使浏览器将您的 UTF-8 视为实际的 UTF-8,而不是默认为不正确的 Latin-1。