如何将 CP-1252 添加到 CentOS

如何将 CP-1252 添加到 CentOS

我们正在处理客户在其本地 Windows 机器上生成的文件,这些机器使用 CP-1252 字符集。有时,在我们的后端(在 CentOS 上运行)处理其中一个文件时,我们会收到运行时错误(它是 Java 后端,所以RuntimeExceptions)。如果我们远程登录到服务器并重命名文件(使用 UTF-8)并重新运行它,文件处理会非常顺利。

有什么方法可以将 CP-1252“添加”到 CentOS 的可用字符集中以避免这种情况发生?

答案1

查看 Oracle 关于 Java 行为的错误报告错误 ID=4733494与“默认语言环境”相关。根据 Sun/Oracle 的此错误报告(实际上 Sun/Oracle 表示此行为实际上不是错误,而只是 Java 的设计方式),该报告如下:

在 JDK 1.4 之前的版本中,我们始终将“C”语言环境强制为 ISO8859-1 字符集。在 1.4 及更高版本中,我们支持要求限制为 7 位 ASCII 的“C”语言环境。

建议将环境变量设置LC_ALLen_US.ISO8859-1或适合系统的区域设置es_ES.ISO-8859-1等等。

添加:

export LC_ALL="en_US.ISO-8859-1"

运行 Java 后端的命令文件应该可以解决问题。

SO问题中也记录了这一点:https://stackoverflow.com/questions/5663709/how-to-fix-java-when-if-refused-to-open-a-file-with-special-charater-in-filename

相关内容