为clojure源文件启用UTF-8编码
我正在开发一个涉及maven,java和clojure的项目。 我面临的问题是,我在我的clojure源文件中有一些UTF-8
字符,因为我的源代码没有被java编译器正确解释,我通过设置环境变量JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF8
得到它的工作JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF8
,但我想要的是通过MAVEN传递这个属性。
我已经尝试过设置MAVEN_OPTS=-Dfile.encoding
但这似乎不起作用。
我也试过为maven的编译器插件设置配置……这样的事情:
-Dfile.encoding=UTF8
这也不起作用。
我做错了什么,还是有别的办法。
谢谢,
RD
好的,这里有更多细节。 这是我的父母pom,
org.apache.maven.plugins maven-compiler-plugin 1.5 1.5 UTF-8 <! also tried UTF8
孩子的pom没有什么有趣的,除了……
src/main/clojure
;; clojure代码片段会导致问题
(let [char "대"] (not (empty? (filter #(s/contains? % char) ))) ;; The list is always empty because I never find a match if I do not set the env. variable
你试过传递编译器选项吗? [-encoding UTF-8]
更新:根据您的意见,这是一个运行时,而不是编译问题。 作为一种解决方法,您可以尝试将字符转义为unicode。
即在clojure文件中将字符更改为“\ uXXXX”,其中XXXX是hex的Unicode点。
如果您的unit testing中出现问题。 您可以通过设置argLine属性来配置surefire插件。 这允许您在命令行上设置任意JVM选项。
您是否通过Compiler Plugin设置参数?
org.apache.maven.plugins maven-compiler-plugin -Dfile.encoding=UTF8
鉴于Clojure实际上将输入文件的预期编码硬编码为UTF8(参见src / jvm / clojure / lang / Compiler.java, loadFile
-method),我很惊讶使用file.encoding
确实有任何影响。
尝试将此属性添加到您的pom UTF-8
对我来说,这段代码在Emacs中的苹果酒REPL中没有问题。
;; returns sequence ("대") (filter #(= % "대") ["대" "한" "민" "국"])
你能提供发出错误的代码吗?