0

我评估以下代码

(org.httpkit.client/get "http://localhost:81"
                    #(clojure.pprint/pprint (.getBytes (:body %))))

它打印

[-17, -65, -67, -17, -65, -67]

如果 index.html 在 CP1251 中,并且

[-48, -80, -48, -79, -48, -78]

如果相同的文档是 UTF-8。

俄语中的 index.html 内容是

абв

http-kit 将响应正文作为 UTF-8 编码的字符串对象返回,但它不考虑 HTML 文档的实际字符集。这会导致身体像垃圾一样

"<html>�����&lt;/html>"

如何使 org.httpkit.client/get 看成文件的字符集?

4

1 回答 1

0

您可以使用带有特定选项的 org.httpkit.client.request 来获取正文的原始字节。

如果文档采用 CP1251 编码,则以下代码将打印正确的正文内容。

(org.httpkit.client/request {:url "http://localhost:81" :as :byte-array} 
                            #(println (String. (:body %) "cp1251")))
于 2014-12-29T09:06:49.573 回答