Bad/Strange 在 Java 中将文件从 CP1250 编码为 UTF-8
Bad/Strange encoding file from CP1250 to UTF-8 in Java
我对从 CP1250 到 UTF-8 的正确编码文件有问题。几乎所有字符都被正确转换,但字符“ň”和“Ř”没有(有“?”字符)。
在 Netbeans,我为项目设置了 UTF-8 编码。
文件中的测试字符串可以是"skříň SKŘÍŇ"。控制台输出:"skĹ™ĂĹ? SKĹ?ÍŇ"。输出不同于转换,例如 PHP。我到最后了。
我的代码:
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("file-cp1250.txt"), "CP1250"));
while ((line = br.readLine()) != null) {
line = new String(line.getBytes("UTF-8"), "CP1250");
System.out.println(line);
}
谢谢指教
以下基本正确:
BufferedReader br = new BufferedReader(
new InputStreamReader(new FileInputStream("file-cp1250.txt"), "CP1250"));
while ((line = br.readLine()) != null) {
System.out.println(line);
}
即InputStream的二进制数据指定为Windows/Code1250页,解码读取。 Java 字符串始终包含 Unicode(因此它可以组合所有脚本)。
然而,System.out
通常是依赖于平台的控制台,它可能不是 Cp1250,而是其他东西。 Unicode 可能会转换为 Cp1252,Microsoft 的 Latin-1。然后一个人正在考虑有一些错误。其中 System.out 根本无法使用。
我对从 CP1250 到 UTF-8 的正确编码文件有问题。几乎所有字符都被正确转换,但字符“ň”和“Ř”没有(有“?”字符)。
在 Netbeans,我为项目设置了 UTF-8 编码。
文件中的测试字符串可以是"skříň SKŘÍŇ"。控制台输出:"skĹ™ĂĹ? SKĹ?ÍŇ"。输出不同于转换,例如 PHP。我到最后了。
我的代码:
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("file-cp1250.txt"), "CP1250"));
while ((line = br.readLine()) != null) {
line = new String(line.getBytes("UTF-8"), "CP1250");
System.out.println(line);
}
谢谢指教
以下基本正确:
BufferedReader br = new BufferedReader(
new InputStreamReader(new FileInputStream("file-cp1250.txt"), "CP1250"));
while ((line = br.readLine()) != null) {
System.out.println(line);
}
即InputStream的二进制数据指定为Windows/Code1250页,解码读取。 Java 字符串始终包含 Unicode(因此它可以组合所有脚本)。
然而,System.out
通常是依赖于平台的控制台,它可能不是 Cp1250,而是其他东西。 Unicode 可能会转换为 Cp1252,Microsoft 的 Latin-1。然后一个人正在考虑有一些错误。其中 System.out 根本无法使用。