2014-01-16 2 views
0

У меня есть следующие строки кода, которые читают TXT-файл (большую часть времени, созданный в Windows, так что это формат ISO), и он имеет символ Ñ. Когда я пытаюсь загрузить файл с помощью Java на моей рабочей станции, который является Windows Machine, он отображается правильно и сохраняется в базе данных правильно. Однако, когда я запускаю приложение на моем сервере приложений, которое является Unix, символ Ѕ отображается неправильно и превращается в символ.Чтение файла в Java на сервере Unix

Вот код Java:

BufferedReader br = new BufferedReader(new InputStreamReader(fu.getInputStream())); 
String input; 
try { 
    while((input = br.readLine()) != null) { 
     if(!input.equals("")) { 
      items.add(input); 
     } 
    } 
} finally { 
    br.close(); 
} 
+0

Разберите файл перед загрузкой его в БД и удалите из него символ Ñ, а затем загрузите его в БД. Это решит вашу проблему. –

+3

@ TheDarkKnight Точно так же, как использование огнемета позволяет вашей лужайке слишком сильно расти, да. –

ответ

0

Pass конструктор по InputStreamReader «s параметр кодировки.

http://docs.oracle.com/javase/7/docs/api/java/io/InputStreamReader.html

+0

Вы имеете в виду передать его «iso-8859-1» charset? –

+0

Благодарим за отзыв. Означает ли это, что Unix Server использует кодировку UTF во время чтения файла? Поэтому, передавая кодировку «ISO-8859-1» в конструкторе InputStreamReader, будет использоваться кодировка ISO? – user3202905

+0

@ user3202905: Наш Linux-сервер использует UTF-8 в качестве кодировки по умолчанию. Наверное, ваш делает то же самое. –

0

Используйте следующий синтаксис для чтения файла.

List<String> lines = Files.readAllLines(Paths.get("yourfile"), 
        StandardCharsets.UTF_8); 
+0

Не указано, что 'java.nio.file.Files' не avalibale в java 1.6. Для ниже java 1.7 он может использовать файлы guava. – px5x2

Смежные вопросы