Я пытаюсь написать текстовые предложения, содержащие арабский и английский языки, но проблема, что оба языка имеют направление RTL и LTR, поэтому выходной текстовый файл не сохраняет порядок слова и некоторые слова приходят друг перед другом, что неправильно, проблема исправлена, когда я изменяю направление текста из блокнота или любого текстового редактора, есть ли способ исправить это с помощью java?написать текстовое соединение между арабским и английским
ответ
Как я объяснил в своем комментарии к предыдущему вопросу, текстовые файлы Unicode сохраняют символы в логическом порядке. Существует a documented algorithm для обработки двунаправленного текста и управления символами, которые вы можете вставить в текстовый поток, чтобы дать подсказки рендереру, например, где можно привязать знаки препинания, когда у вас есть арабская цитата в середине английского предложения.
Но в конечном счете, выбор верхнего уровня «преобладающее» направление текста в целом является вопросом для компонента, который отображает текст, а не то, что сам текст может контролировать - в визуализатора должен решить, имеет ли он дело в основном английском абзаце, содержащем некоторые фрагменты арабского языка или наоборот.
Например, предположим, что у меня есть файл, содержащий следующую логическую последовательность символов (в соответствии с соглашениями в спецификации алгоритма bidi. Я использую строчные буквы для символов слева направо, такие как английский и UPPERCASE для правосторонних символов, Осталось символов, таких как арабский):
abc def GHI! JKL mno? PQR
зритель, выполненный с возможностью обрабатывать текст в основном ДКП сделает это как
abc def LKJ !IHG mno? RQP
, тогда как зритель настроен рассматривать его как преимущественно РТЛ бы оказать точно такой же текст в
RQP ?mno LKJ !IHG abc def
(при отсутствии управляющих символов противного пунктуация, которая лежит на границе между LTR и сегментом RTL будет прикрепляются к той, которая соответствует общей направленности пункта)
спасибо lan для вашего уточнения, но я все еще не могу решить свою проблему. Я попробовал выходной текстовый файл, чтобы быть UTF-8 и ansi для исправления, но проблема все еще существует, редактор, который я использую, это блокнот или блокнот ++ –
@MahmoudIsmail I ' я добавил пример, который может прояснить ситуацию немного больше. –
Для обычного текста я не думаю, что в самом тексте есть способ рассказать зрителю, какое направление использовать. Форматы более высокого уровня имеют «внеполосные» сигналы, которые вы можете использовать, например. '
' в HTML. –Я думаю, вы можете просто установить кодировку UTF-8, и вы получите правильный порядок слов. взгляните на это
Writer out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("Output.txt"), "UTF-8"));
try {
out.write("1.");
out.write("English ");
out.write("2.");
out.write("عربي ");
out.write("3.");
out.write("Hey ");
out.write("4.");
out.write("السلام ");
} finally {
out.close();
}
File f = new File("Output.txt");
Scanner fileprint = new Scanner(f);
while(fileprint.hasNext()){
System.out.println(fileprint.next());
}
спасибо hamad за ответ, но моя проблема, которую вы можете увидеть в сгенерированном текстовом файле, который вы назвали output.txt, если вы его откроете, вы обнаружите, что порядок слов изменился, а некоторые английские слова сдвинуты и что точная проблема, с которой я сталкиваюсь. –
- 1. Преобразование между английским/американским английским
- 2. Чтение текстового файла в Python с английским и арабским текстом
- 3. Работа с английским, арабским и китайскими языками в MySQL
- 4. текстовое поле с арабским языком
- 5. C# текстовое поле со смешанным западным и арабским текстом
- 6. R-текстовое соединение
- 7. Текстовое поле WPF Направление потока с арабским языком
- 8. Соединение между ComboBox и TextBox
- 9. Фильтр по арабским струнам
- 10. perl uri_escape_utf8 с арабским
- 11. wordpress multi language с арабским и испанским
- 12. Проблема с арабским языком и JavaMail
- 13. Условное соединение между таблицами?
- 14. SQLite - как написать правильное соединение?
- 15. как написать условное левое соединение
- 16. текстовое пространство между объектами
- 17. DatePicker Только с английским языком
- 18. Как сделать C# шоу арабским?
- 19. LWUIT: проблема с арабским шрифтом
- 20. Вопросы с Ионным + арабским текстом
- 21. android: проблема с арабским шрифтом
- 22. загружать файл с арабским именем
- 23. Как обращаться с арабским Java
- 24. Левое внешнее соединение (соединение между тремя таблицами)?
- 25. Zend_Search_Lucene 1.12 Codeigniter с арабским
- 26. Как сделать лемматизацию арабским текстом
- 27. Tkinter Этикетка с арабским текстом
- 28. Внешнее соединение между столами
- 29. Соединение между Android и SAP SOAP Webservices
- 30. Последовательное соединение между matlab и arduino
Вы решили это? –