在Suave中使用非拉丁字符

Rei*_*ica 2 f# suave

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

MCVE

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

let app =
    choose [
        GET >=>  OK "??????, ???!" 
    ]

startWebServer defaultConfig app
Run Code Online (Sandbox Code Playgroud)

结果

在此输入图像描述

所以,Q是 - 如何解决它?

Car*_*Dev 8

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

将Content-Type标头设置为给定的mime类型.请记住,它应该包含您的内容的编码.例如,指定mimeType值为'application/json; 强烈建议使用charset = utf-8'(但当然要将'json'替换为您自己的MIME类型;))

  • 打败我:快速*和*正确的+1.:-) (3认同)
  • 顺便说一句,你应该**永远不要使用像1251这样的非Unicode单字节编码,除非你有特殊需要这样做(与旧软件互操作).始终默认为UTF-8(没有BOM),并且您将拥有最少的互操作问题. (3认同)
  • @CaringDev - 我觉得像`text/html; charset = utf-8`可能是一个合理的默认值; 任何使用`text/plain`的人可能只是在初始测试期间这样做.也许我应该建议在Suave问题跟踪器... (2认同)