Я использую Windows, я использую vscode, обновленную версию, терминал там использует кодировку utf8, я проверил с помощью chcp - возвращает 65001, то же самое касается cmd, поэтому я не думаю, что это проблема с терминалом, я попробовал перебрать Java System.out в utf-8, это не помогло (System.setOut(new PrintStream(System.out, true, StandardCharsets.UTF_8));)
У меня нет проблем, когда я предварительно установил строку utf8 и распечатал ее
например :
String random = "háló";
System.out.println(random);
возвращает:
háló
Я пробовал Scanner, BufferedReader, InputStreamReader, конвертировал в байты... я расстроен, пожалуйста, помогите
Код: Выделить всё
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.nio.charset.StandardCharsets;
public class Main {
public static void main(String[] args) {
try {
BufferedReader reader = new BufferedReader(
new InputStreamReader(System.in, StandardCharsets.UTF_8)
);
System.out.println("Enter some text (UTF-8 characters supported):");
String userInput = reader.readLine();
// Print the user input to verify
System.out.println("You entered: " + userInput);
// Print UTF-8 byte representation for each character
System.out.println("Character: UTF-8 bytes:");
for (int i = 0; i < userInput.length(); i++) {
char c = userInput.charAt(i);
System.out.print(c + ": ");
byte[] bytes = String.valueOf(c).getBytes(StandardCharsets.UTF_8);
for (byte b : bytes) {
System.out.print((b & 0xFF) + " ");
}
System.out.println();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
Введите текст (поддерживаются символы UTF-8):
háló
Вы ввели: hl
Символ: UTF-8 байты:
h: 104
: 0
l: 108
: 0
примечание: я начинающий Java-разработчик, пришел из Python
Подробнее здесь: https://stackoverflow.com/questions/786 ... ed-strings