如何为 GNU/Linux 设置正确的字符编码

How to set proper chracter encoding for GNU/Linux

我正在 Linux 服务器系统中创建文本文件,以将数据上传到其他系统。我正在从 DB2 数据库中读取数据。 如果在我的 windows 开发环境中创建文件,那么所有角色都正常出现没有问题。

例如,如果我在 windowsSystem.out.println(productx.getDescription().getName()); 中打印这一行 输出将是 511™ Slim Fit - Rinsed Playa Jeans

同一行如果在 Linux 系统上执行它会产生以下输出

 511? Slim Fit - Rinsed Playa Jeans

如果我在 Linux 系统中执行下面的代码 Charset charset = Charset.defaultCharset(); System.out.println("Default encoding: " + charset + " (Aliases: "+ charset.aliases() + ")"); 输出是

Default encoding: ISO-8859-1 (Aliases: [819, ISO_8859-1, csISOLatin1, l1, IBM-819, 8859-1, IBM819, ISO8859-1, latin1, ISO_8859_1, ISO-8859-1:1987, cp819, iso-ir-100, 8859_1, ISO8859_1])

如何解决这个问题?有人可以帮助我吗?我尝试了很多解决方案,但没有用。

您的默认字符集是 Latin-1(又名 ISO 8859-1)。此字符集似乎不包含字符 。您的 JVM 很可能使用此默认值运行,因为您的系统配置为使用 Latin-1。您确保您的系统和 JVM 都使用 UTF-8。

How to get terminal's Character Encoding