我很惊讶地发现我的铃声应用没有正确地服务于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的方法,因为这是部署应用程序的地方。
谢谢!
答案 0 :(得分:7)
如果不设置Content-Type
标头,Jetty可能会发送一个指示平台默认编码的响应。尝试使用content-type
or charset
响应函数添加适当的标头(例如(charset {:status 200 :body "..."} "UTF-8")
)。