为clojure源文件启用UTF-8编码


问题内容

我正在从事一个涉及Maven,Java和Clojure的项目。我面临的问题是,UTF-8我的clojure源文件中有一些字符,由于这些原因,java编译器无法正确解释我的源代码,我通过设置环境变量使其正常工作JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF8,但是我想要的是通过MAVEN传递此属性。

我已经尝试设置,MAVEN_OPTS=-Dfile.encoding但这似乎不起作用。
我也尝试过为Maven的编译器插件设置配置…如下所示:

 <configuration>
        <compilerArgument>-Dfile.encoding=UTF8</compilerArgument>
 </configuration>

这也不起作用。

我做错了什么,还是有其他方法。

谢谢,
RD

好的,这里有更多细节。这是我的父母pom

  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <configuration>
      <source>1.5</source>
      <target>1.5</target>
      <encoding>UTF-8</encoding> <! also tried <encoding>UTF8</encoding>
    </configuration>
  </plugin>

除了…之外,孩子的绒球里没有其他有趣的东西了。

<resources>
  <resource>
    <directory>src/main/clojure</directory>
  </resource>
</resources>

;; clojure代码段,这会导致问题

(let [char "대"]
   (not (empty? (filter #(s/contains? % char) <some-list>)))
;; The list is always empty because I never find a match if I do not set the env. variable

问题答案:

更新:根据您的评论,这是运行时,而不是编译问题。解决方法是,您可以尝试将字符转义为Unicode。

例如,在clojure文件中将字符更改为’\ uXXXX’,其中XXXX是十六进制的Unicode点。

如果您的问题发生在单元测试中。您可以通过设置argLine属性来配置surefire插件。这使您可以在命令行上设置任意JVM选项。