Я пытаюсь прочитать файл, содержащий английские и арабские символы в каждой строке и другой файл, содержащий английские и китайские символы в каждой строке. Однако символы арабского и китайского языков не отображаются правильно - они просто отображаются в виде вопросительных знаков. Любая идея, как я могу решить эту проблему?
Вот код, который я использую для чтения:
try {
String sCurrentLine;
BufferedReader br = new BufferedReader(new FileReader(directionOfTargetFile));
int counter = 0;
while ((sCurrentLine = br.readLine()) != null) {
String lineFixedHolder = converter.fixParsedParagraph(sCurrentLine);
System.out.println("The line number "+ counter
+ " contain : " + sCurrentLine);
counter++;
}
}
Издание 01
После прочтения строки и получения арабского и китайского слова я использую функцию для их перевода путем простого поиска Заданного арабского текста в ArrayList (который содержит все ожидаемые слова) (используя indexOf (); метод). Затем, когда индекс слова найден, он используется для вызова английского слова с таким же индексом в другом Arraylist. Однако этот поиск всегда возвращает false, потому что он не выполняется при поиске знаков вопроса вместо арабских и китайских символов. Таким образом, мой отпечаток System.out.println показывает мне пустые значения, по одному на каждую ошибку перевода.
* Я использую IDE Netbeans 6.8 для Mac версии
Издание 02
Вот код, который ищет перевод:
int testColor = dbColorArb.indexOf(wordToTranslate);
int testBrand = -1;
if ( testColor != -1 ) {
String result = (String)dbColorEng.get(testColor);
return result;
} else {
testBrand = dbBrandArb.indexOf(wordToTranslate);
}
//System.out.println ("The testBrand is : " + testBrand);
if ( testBrand != -1 ) {
String result = (String)dbBrandEng.get(testBrand);
return result;
} else {
//System.out.println ("The first null");
return null;
}
Я на самом деле ищу 2 Arraylists, которые могут содержать желаемое слово для перевода. Если не удается найти их в обоих списках ArrayLists, возвращается ноль.
Издание 03
При отладке я обнаружил, что читаемые строки хранятся в моей переменной String следующим образом:
"3;0000000000;0000001001;1996-06-22;;2010-01-27;����;;01989;������;"
Издание 03
Файл, который я читаю, был передан мне после того, как он был изменен другой программой (о которой я ничего не знаю, кроме того, что он создан в VB), программа создала арабские буквы, которые появляются неправильно. Когда я проверил кодировку файла в Notepad ++, он показал, что это ANSI. однако, когда я конвертирую его в UTF8 (который заменил арабскую букву на другую английскую букву), а затем преобразовываю ее обратно в ANSI, арабский становится вопросительными знаками!