如何为 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
我正在 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