icCube 报告:无法保存带重音的报告
icCube Reporting : Cannot save Report with accent
保存重音为“Dépenses”的报告时,生成的文件名有些奇怪?字符,然后报告不能是 opened/deleted。既不是来自报告也不是来自 Docs 应用程序。
报表名称最终映射到文件名。在处理文件名时,旧 JAVA IO API 似乎存在错误。
似乎这个问题是在 JAVA 属性 sun.jun.encoding
有一个奇怪的值时发生的(这可以在服务器 UI 界面中检查):例如类似于:ANSI_X3.4-168
。 icCube 期待 UTF-8
在 Linux 机器上,您可以按如下方式检查区域设置。在用户启动 icCube 的 shell 中:
# locale
LANG=en_US.UTF-8
LANGUAGE=
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC=en_GB.UTF-8
LC_TIME=en_GB.UTF-8
LC_COLLATE="en_US.UTF-8"
LC_MONETARY=en_GB.UTF-8
LC_MESSAGES="en_US.UTF-8"
LC_PAPER=en_GB.UTF-8
LC_NAME=en_GB.UTF-8
LC_ADDRESS=
LC_TELEPHONE=en_GB.UTF-8
LC_MEASUREMENT=en_GB.UTF-8
LC_IDENTIFICATION=en_GB.UTF-8
LC_ALL=
然后输入以下内容以检查可用的语言环境:
# locale -a
C
C.UTF-8
en_US.utf8
POSIX
如您所见,第一个命令中提到的 en_GB 区域设置丢失了,这似乎混淆了 JVM。所以可以通过注释掉文件中对应的locale来生成缺失的locale:
/etc/locale.gen
然后重新生成语言环境:
# locale-gen
那你可以查看:
# locale -a
C
C.UTF-8
en_GB.utf8
en_US.utf8
POSIX
现在当重新启动 icCube 时,sun.jnu.encoding 应该是 UTF-8 并且您应该能够得到带有重音符号的报告。
保存重音为“Dépenses”的报告时,生成的文件名有些奇怪?字符,然后报告不能是 opened/deleted。既不是来自报告也不是来自 Docs 应用程序。
报表名称最终映射到文件名。在处理文件名时,旧 JAVA IO API 似乎存在错误。
似乎这个问题是在 JAVA 属性 sun.jun.encoding
有一个奇怪的值时发生的(这可以在服务器 UI 界面中检查):例如类似于:ANSI_X3.4-168
。 icCube 期待 UTF-8
在 Linux 机器上,您可以按如下方式检查区域设置。在用户启动 icCube 的 shell 中:
# locale
LANG=en_US.UTF-8
LANGUAGE=
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC=en_GB.UTF-8
LC_TIME=en_GB.UTF-8
LC_COLLATE="en_US.UTF-8"
LC_MONETARY=en_GB.UTF-8
LC_MESSAGES="en_US.UTF-8"
LC_PAPER=en_GB.UTF-8
LC_NAME=en_GB.UTF-8
LC_ADDRESS=
LC_TELEPHONE=en_GB.UTF-8
LC_MEASUREMENT=en_GB.UTF-8
LC_IDENTIFICATION=en_GB.UTF-8
LC_ALL=
然后输入以下内容以检查可用的语言环境:
# locale -a
C
C.UTF-8
en_US.utf8
POSIX
如您所见,第一个命令中提到的 en_GB 区域设置丢失了,这似乎混淆了 JVM。所以可以通过注释掉文件中对应的locale来生成缺失的locale:
/etc/locale.gen
然后重新生成语言环境:
# locale-gen
那你可以查看:
# locale -a
C
C.UTF-8
en_GB.utf8
en_US.utf8
POSIX
现在当重新启动 icCube 时,sun.jnu.encoding 应该是 UTF-8 并且您应该能够得到带有重音符号的报告。