Java читать файл со строками из разных языков - PullRequest
1 голос
/ 31 января 2012

Я создал программу, которая читает различные текстовые файлы и объединяет их в файл .csv.Это файл .csv с переводами на английский, голландский, французский, итальянский, португальский и испанский языки.

Теперь вот моя проблема:

В конце я получаю хороший заполненный файл .csv свсе переводы вместе.Я читаю файлы с UTF-8, и все языки отображаются правильно, кроме французского.Некоторые символы отображаются в виде Вопросительных знаков, таких как: «Mis? Jour», и это должно быть «Mis à jour».

Вот метод, который читает различные файлы на разных языках и делает из них объекты, чтобы я мог отсортировать их и поместить их в нужное место в файле .csv

Файлызаполнено так:

в аэропорт; аэропорт;

сегодня; Aujourd'hui

public static Language getTranslations(String inputFileName) {
    Language language = new Language();

     FileInputStream fstream;
    try {
        fstream = new FileInputStream(inputFileName);

        // Get the object of DataInputStream
        DataInputStream in = new DataInputStream(fstream);
        BufferedReader br = new BufferedReader( new InputStreamReader( new FileInputStream(inputFileName), "UTF-8"));
        String strLine;
        //Read File Line By Line
        while ((strLine = br.readLine()) != null)   {
            // Print the content on the console
            String[] values = strLine.split(";");
            if(values.length == 2) {
                language.putTranslationItem(values[0], values[1]);
            }
    }

      //Close the input stream
    in.close();

    } catch (FileNotFoundException e) {
    } catch (IOException e) {
    }

    return language;
}

Надеюсь, любой может помочь!

Спасибо

1 Ответ

0 голосов
/ 31 января 2012

Я не совсем уверен в этом, но вы можете попробовать преобразовать строки значений [0] и values ​​[1] в bytearray

byte[] value_0_utfString = values[0].getBytes("UTF-8") ;
byte[] value_1_utfString = values[1].getBytes("UTF-8") ;

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

str_0 = new String(value_0_utfString ,"UTF-8") ;
str_1 = new String(value_1_utfString ,"UTF-8") ;

Не уверен, что это правильный / оптимизированный способ, но поскольку одна строка состоит из английского и французского языков, я подумал, что разделение и кодировка могут помочь, я сам не пробовал

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