Использование нелатинских символов в Suave

Я хочу использовать нелатинские символы в Suave, например, кириллицу, но получаю странный результат

MCVE

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

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

startWebServer defaultConfig app

Результат

Итак, вопрос - как это исправить?

2 ответа

Решение

Для текстовых ответов вам нужно установить кодировку типа шахты: >=> setMimeType "text/plain; charset=utf-8"

Установите заголовок Content-Type для данного типа MIME. Помните, что он должен включать кодировку вашего контента. Так, например, указав значение mimeType для application / json; Настоятельно рекомендуется использовать charset = utf-8 '(но замените' json 'на ваш собственный тип MIME, конечно;))

Это похоже на то, что UTF-8 интерпретируется как Latin-1. Попробуйте добавить >=> setMimeType "text/html; charset=utf-8" в вашем приложении и посмотрите, заставляет ли браузер рассматривать ваш UTF-8 как фактический UTF-8 вместо того, чтобы по умолчанию использовать неправильный Latin-1.

Другие вопросы по тегам