Я пытаюсь прочитать содержимое файла на французском языке (символ по символу) и проверять значение ascii для выполнения некоторой операции. Все работает отлично с английским алфавитом, но для символа, подобного Мне кажется, я столкнулся с какой-то проблемой.Проблема при чтении французского слова из текстового файла в java/android
Например, если файл моего файла français, я получаю вывод как franãais. Здесь я прикрепляю свой код, пожалуйста, взгляните и посоветуйте мне, чтобы исправить эту проблему.
File file = new File("C:\text.txt");
fis = new BufferedInputStream(new FileInputStream(file));
char current;
char org;
while (fis.available() > 0) {
current = (char) fis.read(); // to read character
// from file
int ascii = (int) current; // to get ascii for the
// character
org = (char) (ascii); // to get the actual
// character
if (ascii == 10) {
resultString = resultString.append(",'"
+ strCompCode + "'");
dbhelpher.addDataRecord(resultString.toString());
resultString.setLength(0);
} else if (ascii != 13) { // other than the ascii
// 13, the character are
// appended with string
// builder
resultString.append(org);
}
}
fis.close();
Здесь мне нужно прочитать французский символ, как в текстовом файле. Ваш совет будет очень благодарен. Спасибо заранее.
Ну как кодируется текстовый файл? Похоже, вы должны использовать 'InputStreamReader' с правильной кодировкой (возможно, UTF-8) и просто читать строку за раз. Обратите внимание, что ASCII не содержит акцентированных символов. Кроме того, приложите больше усилий для форматирования исходного кода в будущем. –
Проверьте эту ссылку, читайте файлы UTF-8: http://www.mkyong.com/java/how-to-read-utf-8-encoded-data-from-a-file-java/ – Jure
yes my текстовый файл, закодированный с помощью UTF-8. –