clojure和ring:响应中的utf-8来自'?'

pri*_*ing 8 clojure utf-8 ring

我很惊讶地发现我的铃声应用程序没有正确服务utf-8.我把它减少到一个简单的测试用例,有没有人知道如何确保这总是将utf-8返回给浏览器?

(ns utf8test.core)

(defn app
  [request]
  {:status 200 :body "???"}) 
Run Code Online (Sandbox Code Playgroud)

在project.clj中(使用lein-ring插件):

:ring {:handler utf8test.core/app} 
Run Code Online (Sandbox Code Playgroud)

在终端:

> lein ring server
Run Code Online (Sandbox Code Playgroud)

--->ɮѪÏ'(这是错误的,应该是ɮѪΘ)

优选地,也是一种适用于tomcat的方法,因为这是部署app的地方.

谢谢!

cem*_*ick 7

如果不设置Content-Type标头,Jetty可能会发送一个响应,指示平台默认编码.尝试使用content-typecharset响应函数添加适当的标题(例如(charset {:status 200 :body "..."} "UTF-8")).