10

我有一个已编码为 UTF-8 的俄语字符串

String str = "\u041E\u041A";
System.out.println("String str : " + str);

当我在 Eclipse 控制台中打印字符串时,我得到??任何人都可以建议如何将俄语字符串打印到控制台或我在这里做错了什么?

我尝试使用将其转换为字节byte myArr[] = str.getBytes("UTF-8"),然后new String(myArr, "UTF-8")仍然是同样的问题:-(

4

8 回答 8

6

尝试这个:

String myString = "some cyrillic text";
byte bytes[] = myString.getBytes("ISO-8859-1"); 
String value = new String(bytes, "UTF-8"); 

或这个:

String myString = "some cyrillic text";
byte bytes[] = myString.getBytes("UTF-8"); 
String value = new String(bytes, "UTF-8"); 

俄语的主要问题是正确设置 UTF-8 编码。

于 2013-06-18T12:54:13.680 回答
3

在 Eclipse 中转到运行 > 运行配置 > 通用 > 将控制台编码更改为 UTF-8。您将能够在控制台中看到俄语字符

于 2015-07-20T07:43:07.387 回答
1

我的 Eclipse 打印正确

String str : ОК

尝试将运行配置编码更改为 UTF-8 或 CP1251

于 2013-06-18T12:49:59.020 回答
0

控制台的显示字体很可能无法处理非 ASCII 字符。

您可以尝试打印到文件而不是 System.out

于 2013-06-18T12:48:27.153 回答
0

这在类似的情况下帮助了我:

String myString = "some cyrillic text";

byte bytes[] = myString.getBytes("windows-1251");

String value = URLEncoder.encode(new String(bytes, "UTF-8"), "UTF-8");
于 2021-10-05T16:51:48.313 回答
-1

当我阅读带有俄文字母的“MyFile.txt”文件时,我遇到了同样的问题。可能对任何人都有帮助。解决方案是:

package j;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class J4 {
public static void Read_TXT_File(String fileName) throws 
FileNotFoundException {
try{int i=0;

Scanner scanner = new Scanner(new File(fileName), "utf-8");
while (scanner.hasNext()) {
String line = scanner.nextLine();

//byte bytes[] = line.getBytes("UTF-8"); 
//line = new String(bytes, "UTF-8"); 
if (line.isEmpty()) {
System.out.println(i+": Empty line");
}
else {
System.out.println(i+": "+ line);
// here is your code for example String MyString = line
}
i++;
}
}catch(Exception ex){ex.printStackTrace();}
}

public static void main(String[] args) throws 
FileNotFoundException {
Read_TXT_File("MyFile.txt");
}
}
于 2021-07-01T11:06:50.937 回答
-1

在 XCode 中,您可以通过 LLDB 函数 po [SomeClass returnAnObject] 打印值对于自动工作,可以在断点的某些操作中添加它。您还需要在“评估操作后自动继续”中添加复选框

例子

于 2019-01-30T12:43:04.403 回答
-1
于 2019-07-30T19:13:38.203 回答