Кодирование текстового файла Java

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

Примечание, что некоторые алгоритмы показывают одну форму с небольшими наборами данных, но другой с большим... и определением больших остается немного туманным. Это означает, что алгоритм с хорошей кривой производительности мог иметь такой реальный мир наверху, что (для небольших наборов данных) это не работает, а также теоретически лучший алгоритм.

До инспекция кода методы, ни один не существует. Но оснащение Вашего кода для выполнения в различных длинах и вывод простого файла (RunSize RunLength был бы достаточно) должны быть легкими. Генерация надлежащих данных тестирования могла быть более сложной (некоторая работа алгоритмов, лучшая/хуже с частично заказанными данными, таким образом, Вы захотите генерировать данные, которые представили Ваш нормальный пример использования ).

из-за проблем с определением, "что является большим" и то, что производительность информационно-зависима, я нахожу, что статический анализ часто вводит в заблуждение. При оптимизации производительности и выборе между двумя алгоритмами, реальный мир "резина отправляется в путь" тест, единственный заключительный арбитр, которому я доверяю.

11
задан user 17 August 2009 в 16:11
поделиться

3 ответа

UTF-8 и UCS-2 / UTF-16 можно довольно легко отличить по метке порядка байтов в начале файла. Если он существует, то довольно хорошая ставка , что файл находится в этой кодировке, но это не полная уверенность. Вы также можете обнаружить, что файл имеет формат в одной из этих кодировок, но не имеет отметки порядка байтов.

Я мало знаю об ISO-8859-2, но я бы не стал Не удивлюсь, если почти каждый файл будет допустимым текстовым файлом в этой кодировке. Лучшее, что вы сможете сделать, - это проверить его эвристически. Действительно, страница Википедии , где говорится об этом, предполагает, что недействителен только байт 0x7f.

Нет идеи читать файл «как есть»

9
ответ дан 3 December 2019 в 04:53
поделиться

Да, существует ряд методов для определения кодировки символов, особенно в Java. Взгляните на jchardet , который основан на алгоритме Mozilla. Также есть cpdetector и проект IBM под названием ICU4j . Я бы посмотрел на последний, так как он кажется более надежным, чем два других. Они работают на основе статистического анализа двоичного файла, ICU4j также предоставит уровень достоверности кодировки символов, которую он обнаруживает, поэтому вы можете использовать это в приведенном выше случае. Работает очень хорошо.

11
ответ дан 3 December 2019 в 04:53
поделиться

Если ваш текстовый файл является правильно созданным текстовым файлом Unicode, то метка порядка байтов (BOM) должна сообщать вам всю необходимую информацию. См. здесь для получения дополнительной информации о спецификации

Если это не так, вам придется использовать некоторую библиотеку обнаружения кодировки.

0
ответ дан 3 December 2019 в 04:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: