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

时间:2012-11-30 04:55:55

标签: utf-8 clojure ring

我很惊讶地发现我的铃声应用没有正确地服务于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 个答案:

答案 0 :(得分:7)

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