Кодировка Eclipse отладчик против JVM - PullRequest
0 голосов
/ 27 февраля 2019

Я пытался сохранить путь, полученный из file.getAbsolutePath(), в файл.Проблема в том, что один файл имеет č в имени.println() показывает č как ?, но я могу использовать строку для создания нового файла с таким же именем, и появляется č.Так что я думаю, что в кодировке, используемой JVM, это неправильно.Я попробовал пару кодировок, но ни одна из них не получает č на данный момент.Я использую режим отладки Eclipse, и он показывает č правильно.

Итак, мой вопрос: Какая кодировка по умолчанию для представления переменных отладчика по умолчанию?Или есть способ сохранить строку без потери č?

a = file.getAbsolutePath();
a.compare(new String(file.getAbsolutePath().getBytes()));

Это дает 0 с другими путями, а не с путем č.äüö не проблема.

1 Ответ

0 голосов
/ 27 февраля 2019

Используйте кодировку UTF , как StandardCharsets.UTF_8 при кодировании и то же самое при декодировании, чтобы избежать потери символов.

Например,

a = file.getAbsolutePath();
a.compare(new String(file.getAbsolutePath().getBytes(StandardCharsets.UTF_8), StandardCharsets.UTF_8));

даст 0 для всех путей (с č и без него).На getBytes() и println() символы могут быть потеряны, если используется кодировка не-UTF.В Java сам экземпляр строки не имеет кодировки, поскольку он состоит из символов Unicode.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...