2024 Clojure 状态调查! 分享您的看法。

欢迎!请在关于 页面了解更多关于其如何工作的信息。

0
data.xml
README.md 使用 java.io.FileWriter 创建 XML 文件的示例。因此,只有当 Java 平台的默认编码是 UTF-8 时,示例才能正常工作。建议:README 应展示一种更广泛使用的技术,例如使用 clojure.java.io/writer,它的默认编码在所有地方都是 UTF-8。

使用 README 示例的程序

{code:clojure}
(ns garble
  (:require [clojure.data.xml :refer [element emit]]))
(defn -main
  "尝试写入一个 XML 文件"
  []
  (let [tags (element :foo {:foo-attr "foo value"}
             (element :bar {:bar-attr "bar value"}
               (element :baz {} "The baz value")))]
  (with-open [out-file (java.io FileWriter. "/tmp/foo.xml")]
    (emit tags out-file))))


调用 1(覆盖 Java 的默认编码,因为我电脑上的 Java 倾向于使用 UTF-8)

{{java -cp ... -Dfile.encoding=US-ASCII clojure.main -m garble}}

结果

{{java.lang.Exception: 流的输出编码(UTF-8)与声明(ASCII)不匹配}}

调用 2

{{java -cp ... -Dfile.encoding=UTF-8 clojure.main -m garble}}

结果:成功写入 /tmp/foo.xml

1 答案

0
参考:https://clojure.atlassian.net/browse/DXML-40(由 alex+import 报告)
...