После экспорта данных из базы данных Cronos в TXT-файл с помощью приложения Windows у меня возникла проблема - экспортированные данные невозможно правильно просмотреть на Linux-сервере (просмотр в Windows в порядке).
Вот пример:
цНПНД|||пЮИНМ|||сКХЖЮ
Я пытался преобразовать его с помощью PHP, потому что позже мне нужно будет преобразовать его в огромный SQL-файл.
Службы декодирования кодировки показали мне, что этот текст следует преобразовать в CP1251 из KOI8-R, поэтому я попробовал его с помощью iconv () и mb_convert_encoding ()
Итак, давайте попробуем это:
$string = iconv('KOI8-R', 'CP1251', $string);
Результат: Notice: iconv(): Detected an illegal character in input string
Я гуглил // IGNORE и повторил попытку: $string = iconv('KOI8-R', 'CP1251//IGNORE', $string);
Результат: та же строка- цНПНД|||пЮИНМ|||сКХЖЮ
Тогда это было mb_convert_encoding без аргумента "from-encoding": $ string = mb_convert_encoding ($ string, 'CP1251');
Результат: ?????|||?????|||?????
... и с "from encoding": цНПНД|||пЮИНМ|||сКХЖЮ
Тогда это были попытки зеркалирования (cp1251 до koi8-r). С помощью iconv () я получил «Обнаружен недопустимый символ во входной строке»;mb_convert_encoding дал мне что-то новое: зПТПД|||тБКПО|||хМЙГБ
Попытка конвертировать это в UTF-8 показала много разных символов.
Я также хотел конвертировать этот файл с помощью Notepad ++, но он не позволяет мне открыть 2.5GB txt-file: (
Я также пытался использовать iconv в качестве двоичного файла - те же ошибки.
Все, что мне нужно, - это преобразовать это в читаемые русские символы. Лучший способ - этопреобразовать его в UTF-8, но я не знаю, как это сделать
Linux node03 4.4.0-142-generic #168-Ubuntu SMP Wed Jan 16 21:00:45 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
iconv (Ubuntu GLIBC 2.23-0ubuntu11) 2.23
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
with Zend OPcache v7.0.33-0ubuntu0.16.04.2, Copyright (c) 1999-2017, by Zend Technologies```