Определить кодировку строки

Вопрос можно считать закрытым. На суть темы ответ найден. По крайне мере основа логики есть.
Спасибо.
 
Имхо, треш задача, обезьянки, проверяющие кодировку стоят дешевле ))
 
Это не имеет значения, но не по этой причине.
Напрягись, пожалуйста, и предоставь запрошенную информацию.
Ну вот:
Код:
pdftotext -listenc
Available encodings are:
UCS-2
ASCII7
Latin1
UTF-8
ZapfDingbats
Symbol
Big5
EUC-JP
EUC-CN
ISO-2022-KR
Big5ascii
KOI8-R
GBK
ISO-8859-6
Latin2
Windows-1255
ISO-8859-7
ISO-8859-8
ISO-8859-9
ISO-2022-JP
TIS-620
ISO-2022-CN
Shift-JIS
 
Ясно.
pdftotext -enc Latin1 sample.pdf - | iconv -f ISO-8859-5


AmdY, кодировка, естественно, вшита в файл. Только вшита там Latin1 (ISO-8859-1), а текст на самом деле в ISO-8859-5.
Я на протяжении всего топика несколько раз повторял, что с битыми кодировками можно разобраться только одинм способом - достать текст без конвертации и уже с вынутым текстом работать. Никто слушать не хочет, хоть кол на голове теши.
 
Вопрос не в том, известна ли кодировка - мы заранее предполагаем, что она неверная, так что известна она или нет, нас не интересует.
Вопрос в том, как достать данные в неповреждённом перекодированием из неверной кодировки виде.
Либо как узнать, какая кодировка объявлена в документе, и надеяться, что если указать эту же кодировку для экспорта, то никакие преобразования применяться не будут, что в принципе сводится к первому варианту (доставание данных без перекодировки).
Для этого надо либо лезть в дебри библиотек и смотреть, какие низкоуровневые функции доступны, либо заниматься гаданием.
По использованию библиотеки сам смотри, что там доступно, я с ней никогда не работал.
А по поводу гадания…
В твоём случае, я думаю, можно применить примерно следующий алгоритм:
1. Попробовать достать данные в UTF-8.
2. Если результат ни на что не похож, достать данные в Latin1 и попробовать определить кодировку.
Поищи в инете алгоритмы биграммного анализа, им часто достаточно 15-20 символов для определения кодировки с очень высокой вероятностью.
 
Вопрос не в том, известна ли кодировка - мы заранее предполагаем, что она неверная, так что известна она или нет, нас не интересует.
Вопрос в том, как достать данные в неповреждённом перекодированием из неверной кодировки виде.
Либо как узнать, какая кодировка объявлена в документе, и надеяться, что если указать эту же кодировку для экспорта, то никакие преобразования применяться не будут, что в принципе сводится к первому варианту (доставание данных без перекодировки).
Вообще не вариант. Конечная кодировка должна быть в utf8. Текст должен быть читабельным. Документ может прийти в любой кодировке.
 
Просто достань читабельный текст при условии, что ты не знаешь о том что строка в iso-8859-5.
 
Ты слишком быстро отвечаешь. Дочитай пост до конца, пожалуйста.
Или прочитай мой предыдущий пост с начала.
 
Ты слишком быстро отвечаешь. Дочитай пост до конца, пожалуйста.
Или прочитай мой предыдущий пост с начала.
Да, пост был короткий.
Это не будет работать, т.к. при попытке определить нечитабельный язык будет приходить ответ, что это вьетнамский или хинди или что-то подобное.
 
Как опеределить кодировку я уже писал выше. Не нужно ничего в нете искать.
 
Если вы уже сдались и опустили руки, не вижу смысла вас в чём-то убеждать.
 
Димон, если вам хочется определять ВООБЩЕ ЛЮБОЙ язык документа, включая вьетнамский и Хинди, то, конечно, задача сильно усложняется.
А теперь посмотритесь в зеркало и честно ответьте - со сколькими языками ваша программа будет работать реально?
 
Димон, если вам хочется определять ВООБЩЕ ЛЮБОЙ язык документа, включая вьетнамский и Хинди, то, конечно, задача сильно усложняется.
А теперь посмотритесь в зеркало и честно ответьте - со сколькими языками ваша программа будет работать реально?
С этими языками тоже работает.
 
Сверху