Кроме того, то, что предлагает Зак Скривена, также верно: вы не можете предполагать, что таким образом вы можете создавать строки из кусков данных - либо используйте InputStreamReader, либо сначала считывайте полные данные в массив (очевидно, не будет работать для большого файла) , Однако, поскольку он, похоже, работает на XP, я рискну предположить, что в данном конкретном случае это, вероятно, не ваша проблема.

я есть файл, который закодирован как ISO-8859-1 и содержит такие символы, как ô.

Я читаю этот файл с кодом Java, что-то вроде:

File in = new File("myfile.csv");
InputStream fr = new FileInputStream(in);
byte[] buffer = new byte[4096];
while (true) {
    int byteCount = fr.read(buffer, 0, buffer.length);
    if (byteCount <= 0) {
        break;
    }

    String s = new String(buffer, 0, byteCount,"ISO-8859-1");
    System.out.println(s);
}

Однако символ ô всегда искажен, обычно печатается как? ,

Я прочитал вокруг предмета (и немного узнал в пути), например.

http://www.joelonsoftware.com/articles/Unicode.htmlhttp://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4508058http://www.ingrid.org/java/i18n/utf-16/

но до сих пор не могу заставить это работать

Интересно, что это работает на моем локальном компьютере (xp), но не на моей Linux-коробке.

Я проверил, что мой jdk поддерживает необходимые кодировки (они стандартные, так что это не удивительно), используя:

System.out.println(java.nio.charset.Charset.availableCharsets());

Ответы на вопрос(5)

Ваш ответ на вопрос