• Как правильно угадать кодировку символов в файле?

    Для кириллицы можно примерно такой алгоритм:

    1. Задетектить UTF-16
    обычно в начале текста присутствует Unicode-признак порядка U+FEFF, по нему можно отличить big endian / little endian.

    Если признака нет, но в четных позициях текста (начиная с нуля) в основном символы с кодом 0x00 (для латиницы) и 0x04 (для кириллицы) - то это UTF-16 big endian, если в нечетных - little endian.

    2. Задетектить UTF-8
    все кириллические символы будут состоять из двух октетов, первый октет будет иметь значение 0xd0 или 0xd1, латиница будет совпадать с ASCII

    3. Отличить Windows-1251 от KOI8-r - и там и там для кириллицы используют в основном символы с кодом 192-255, но в koi8-r сначала идут маленькие символы, в windows-1251 - сначала большие. Если текст преимущественно состоит из символов 192-223 но в начале предложения (после точки с пробелом) идут символы с кодом 224-255 - это ko8-r, если наоборот - windows-1251 + можно использовать частотный анализ символов. Латиница совпадает с ASCII.

    Все остальные кодировки достаточно редки, правда китайцы (и почему-то Google) любят кодировать кириллицу в Big-5.
    Ответ написан
    3 комментария
  • Каким методом можно получить список людей, сделавших репост поста?

    Есть закрытый в данный момент метод по получению решар топиков, доступ к которому выдаётся по запросу на api-support@ok.ru
    Ответ написан
    Комментировать