Вопрос

я проанализировал текст (код CAL) с помощью BufferedReader и BufferedWriter в Java, к сожалению, строки, которые я написал и написал с помощью outStream.write (line); изменились, пожалуйста, посмотрите на скриншоты:

http://uploadz.eu/images/4qz8mtkm2d9zx3x5ms3n.png ч ** р: //uploadz.eu/images/c03hgkrgrmit2ij2mug.png

Как видите, какой-то специальный символ изменил строки, хотя я не собирался их менять.

Насколько я знаю, Bufferedwriter / Reader должен работать в Unicode по умолчанию.

Это было полезно?

Решение

Ну, BufferedWriter и BufferedReader не зависят от кодировки - они никогда не имеют дело с реальными кодировками, поскольку они просто буферизуют существующие читатели и пишущие.

Теперь FileWriter и FileReader используют системную кодировку по умолчанию (urgh). Чтобы обойти эту проблему, обычно следует использовать пару InputStream / InputStreamReader или OutputStream / OutputStreamWriter (возможно, в виде BufferedReader / BufferedWriter ) и укажите кодировку явно.

Вы не сказали, что вы на самом деле читаете - это файл? Вы знаете кодировку файла?

Другие советы

Вам следует либо знать кодировку, если вы собираетесь обрабатывать контент как текст (String), либо, когда копирование является вашей целью, или трактовать контент как байтовый массив.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top