clojure и ring: utf-8 в ответах появляется как '?'

Я был удивлен, обнаружив, что мое приложение для кольца не обслуживает utf-8 должным образом. Я свел это к простому тестовому случаю, кто-нибудь знает, как гарантировать, что он всегда будет возвращать utf-8 в браузер?

(ns utf8test.core)

(defn app
  [request]
  {:status 200 :body "ɮѪϴ"}) 

В project.clj (используя плагин lein-ring):

:ring {:handler utf8test.core/app} 

В терминале:

> lein ring server

---> ɮѪϴ (это неправильно, должно быть ɮѪϴ)

Желательно метод, который работает и для Tomcat, поскольку именно здесь развертывается приложение.

Спасибо!

1 ответ

Решение

Без настройки Content-Type Возможно, Jetty отправляет ответ, указывающий кодировку платформы по умолчанию. Попробуйте использовать content-type или жеcharset Функции ответа для добавления соответствующего заголовка (например, (charset {:status 200 :body "..."} "UTF-8")).

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