У меня есть код Java, который читает файл Excel и записывает его в текстовый файл. Когда я получаю выходной текстовый файл, я вижу только такие символы в блокноте. "‷ 搮 ㄱ 〱 〰 〠〰〠〰〠〰〠〰〠〰〠〰〠〰〠〰〠〰〠〰〠" Но если я открою текстовый файл в WordPad или MS-слово, данные отображаются правильно. В чем может быть ошибка?
Какая кодировка текста?
Matt Ball 14 лет назад
0
3 ответа на вопрос
3
Task
Ошибка заключается в использовании Блокнота. Блокнот использует первые пару байтов файла, чтобы определить кодировку. Для правильного чтения необходимо открыть файл с определенной кодировкой.
Try notepadd++ as a free notepad replacement (http://notepad-plus.sourceforge.net/uk/site.htm). Very handy and knows how to handle encoding properly. Also does syntax highlighting for various languages and XML.
14 лет назад
4
или ... вывести преамбулу кодировки в файл
Lasse Vågsæther Karlsen 14 лет назад
0
2
Joey
Вполне вероятно, что первая часть ваших данных внешне похожа на Unicode в определенной кодировке (UTF-16). Это было проблемой в предыдущих версиях Windows, о которой можно прочитать в этой статье . Тем не менее, я думаю, что после Windows Vista эта конкретная проблема была исправлена.
Простой обходной путь - не использовать Блокнот для этих данных.
0
vafylec
Параметр командной строки:, notepad /A <filename>может использоваться для принудительного открытия файла, как если бы он имел кодировку ANSI, что в этом случае приведет к правильному открытию файла.
Проблема здесь заключается в ошибке «Буш скрыл факты», некоторые txt-файлы имеют 2 или 3-байтовую последовательность, называемую меткой порядка байтов (BOM), определяющей правильную кодировку для файла. Если в файле этого нет, Notepad определяет кодировку файла и может угадать неправильно. Нет спецификации, указывающей, что файл является ANSI, и поэтому файлы ANSI всегда рискуют быть угаданными неправильно. Некоторые текстовые редакторы предполагают, что файл является ANSI, если у него нет спецификации, и подход Notepad к определению кодировки файла может отличаться в зависимости от версии.