Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Java: Общие вопросы > Определения кодировки у текстового файла? |
Автор: unkis 5.11.2007, 17:02 |
Ребята у меня такая вот проблема, есть на диске файлы в линуксе, надо определить в какой кодировке они сохранены. Это обычные .txt, то есть никакой информации в теле файла я не нашел. У кого-нибудь есть какие-нибудь идеи как это реализовать на java? Или если это можно реализовать средствами линукса тоге подойдет. |
Автор: valiantsin 5.11.2007, 17:54 | ||
Уважаемый , unkis, возможно вот этот код решит проблемму:
|
Автор: unkis 5.11.2007, 18:01 |
спасибо но как-то странно, на все файлы которие я создал, будь-то utf-8 или ANSI, программа говорит Cp1252. что-то здесь не правильно |
Автор: Kangaroo 5.11.2007, 18:44 | ||
имхо, это:
выведет не кодировку файла, а кодировку, которую использует FileReader. А использует он кодировку по-умолчанию (если явно не указать другую). |
Автор: Alexandr87 5.11.2007, 18:49 |
думаю стандратных средств нет, но можно самому программку написать, которая будет это определять, просто методом перебора всех вероятных локалей. Полученный текст для данной локали, проверяется на соответсвие модели открытого текста русского языка (вероятностые характеристики отдельных символов, биграмм текста). |
Автор: Alexandr87 5.11.2007, 19:00 |
unkis, выше посмотри, просто пока добавлял в пост, ты уже отписал. и в линуксе была софтинка, для правильного определения кодировки русских тегов - rus-xmms (или как-то так?), можешь еще попробовывать посмотреть. |
Автор: jer1 5.11.2007, 23:23 | ||
http://trific.ath.cx/software/enca/ (бывает не все гладко, но тем не менее)
|
Автор: _Michael 6.11.2007, 10:23 | ||
http://ru.wikipedia.org/wiki/%D0%AE%D0%BD%D0%B8%D0%BA%D0%BE%D0%B4#.D0.9F.D0.BE.D1.80.D1.8F.D0.B4.D0.BE.D0.BA_.D0.B1.D0.B0.D0.B9.D1.82.D0.BE.D0.B2 Вот здесь пишет о Юникоде. Если в начале файла есть хоть одна из указанных сигнатур, значит однозначно файл в том Юникоде, который соответсвует присутсвующей сигнатуре. Если ж в начале файла етого нету, а сразу идет текст, то надо тогда пользоваться как выразился Alexandr87 :
![]() |