我正在尝试理解围绕字符编码的实用编程的基础知识。
需要考虑的一些事项:
clojure
语言控制台(其REPL或交互式解释器)中,它根本不起作用。我不知道这个特定的控制台是否与IntelliJ的标准java控制台不同。有很多资源可以学习Unicode和字符编码。但AFAIK,学习实际使用指南并不多。 StackOverflow上的其他一些问题很有用,但没有一个能够满足我的目的。
更新
在了解了我所面临的问题的一般性之后,我已经大大简化了这个问题。最初,它专门针对Java
平台,使用clojure
语言的代码示例。要查看这些内容,请查看此问题的第一个版本。
答案 0 :(得分:2)
您的问题与IDE如何告诉Java编译器解释源文件的编码有关。 (控制台输出可能是另一个问题。不知道)
如果你运行没有参数的javac程序,你会得到一个帮助打印(下面除外),提示你它是如何工作的。
-encoding <encoding> Specify character encoding used by source files
因此,Javac解释源文件及其文字字符串,并将其转换为UTF8,我想在字节代码中。我确定Closure编译器有类似的选项。
在Eclipse中,决定编码源文件的选项在General&gt;下。工作区&gt;文本文件编码。在我的瑞典Windows机器下,所选的默认值为CP1252。 (我不在乎那里有什么,因为我完全没有使用ASCII以外的字符。)
答案 1 :(得分:2)
作为必须能够解决此类问题的知识记录,这里有一些亮点:
其他人提供的以下提示可能非常有用:
另请参阅以下学习资源:
要扩大主题,请参阅What Issues prevent Java applications from working on multiple platforms?。
答案 2 :(得分:1)
除了您展示的代码不是Java之外,我建议您查看ICU(http://site.icu-project.org/)Java和C ++中提供的开源Unicode库。
答案 3 :(得分:1)
-encoding
的{{1}}选项告诉编译器源文件使用哪种字符编码。
IDE通常默认使用平台字符编码,但可以设置为使用您指定的编码。然后他们又迈出了一步,让你覆盖单个文件的编码。
如果您的编辑器或IDE使用的是平台默认值之外的其他内容,那么您使用其他工具编译或编辑文件,则需要确保两个工具都明确指定了相同的编码。