2

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

MCVE

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

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

startWebServer defaultConfig app

结果

在此处输入图像描述

所以,问题是 - 如何解决它?

4

2 回答 2

8

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

将 Content-Type 标头设置为给定的 mime 类型。请记住,它应该包括您的内容的编码。例如,指定一个 mimeType 值为 'application/json; 强烈推荐 charset=utf-8' (当然,用你自己的 MIME 类型替换 'json' ;))

于 2017-06-15T09:41:44.100 回答
4

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

于 2017-06-15T09:43:26.683 回答