gpt4 book ai didi

java - Linux 和 MySQL 中的编码问题

转载 作者:行者123 更新时间:2023-11-29 15:10:02 24 4
gpt4 key购买 nike

我已经在 Windows 机器上开发了我的 Java/EE 程序,并且一切都在 Windows 中完美运行,但是当我在 Linux 机器中将 WAR 安装到 Jboss 时,当我导入 csv 文件时,我遇到了 MySQL 的编码问题。 Csv 文件编码为 ISO-8859-1,我导入的文件编码为 ISO-8859-1。 MySQL 似乎没有将字符串编码为 UTF-8,数据库中使用的编码是什么。

最佳答案

如果问题发生在您读取文件时(而不是在将数据插入数据库时​​),我猜是 file.encoding 系统属性关闭了。如果您创建阅读器而不指定编码,它将使用 file.encoding 作为默认值。因此,如果您的 Linux 机器使用 UTF-8 作为其系统编码,那么非 ASCII-7 字符将会造成麻烦。

您可以通过将 LC_ALL 环境变量设置为某个适当的值来全局更改系统的默认编码(我认为您可以使用 en_US.ISO-8859-1 ,但请查看手册),或者您可以通过在命令行上指定来在本地为 JVM 实例更改它:

java -Dfile.encoding=ISO-8859-1 -jar yourapp.jar

如果您可以更改读取 CSV 的代码,我假设您从 InputStreamReader 读取(直接或间接) - 只需为构造函数提供正确的 CharSet/CharSetDecoder 就完成了。 (您可能还想使这些东西可配置 - 但我假设您可以自己解决这个问题。)

关于java - Linux 和 MySQL 中的编码问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/986254/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com