У меня есть таблица базы данных:
DROP TABLE translation_en_lt; CREATE TABLE translation_en_lt ( id INTEGER, lt_translation WIDEMEMO BLOBBlockSize 102400 BLOBCompressionAlgorithm ZLIB BLOBCompressionMode 9 );
Что было создано с помощью AbsManager (Абсолютный менеджер баз данных, Delphi). Однако он устарел, а синтаксис недействителен для текущего MySQL. Затем у меня есть этот ввод данных:
INSERT INTO translation_en_lt (lt_translation) values (MimeToBin('cABhAHMAaQBzAGw='));
Значение этой строки, отображаемое правильно в AbsManager, является pasislinkti
. Однако base64_decode('cABhAHMAaQBzAGw=')
возвращает p a s i s l
[ base64_encode('pasislinkti')
возвращает cGFzaXNsaW5rdGk=
].
Как мне получить «pasislinkti» из MimeToBin('cABhAHMAaQBzAGw=')
? Имеет ли это какое-либо отношение к кодировке, zlib ( WIDEMEMO BLOBBlockSize 102400 BLOBCompressionAlgorithm ZLIB BLOBCompressionMode 9
)?
Я получил комментарий, говорящий:
14:24 VoVo64: парень: похоже, что кодированные base64 данные на самом деле UCS-2 немного endian. декодирование cABhAHMAaQBzAGw = к результатам HEX в 70 00 61 00 73 00 69 00 73 00 6c
Но я уже пробовал iconv('UTF-16', 'UTF-8', base64_decode('cABhAHMAaQBzAGw='))
результате чего:
Notice: iconv(): Detected an incomplete multibyte character in input string in /var/www/ssl/pp.php on line 2 pasis
Я также пробовал: mb_convert_encoding($u, 'UCS-2LE', 'UTF-8'), mb_convert_encoding($u, 'UCS-2', 'UTF-8')
; ничего не получилось.
Это строки Base64:
cABhAHMAaQBzAGw= -> pasisl cGFzaXNsaW5rdGk= -> pasislinkti
Я думаю, что ваши данные усекаются где-то. Вы должны искать функцию MimeToText () в вашей системе базы данных. Я попытался выгрузить данные в CSV и загрузить в MySQL с помощью LOAD DATA INFILE
. Вероятно, вам придется переписать схемы таблиц вручную. BLOBBlockSize …. похоже, предназначен для сжатия этих данных. Ваша новая таблица займет немного больше места, или вы сможете изучить функцию MySQL Compress ().
Что-то вроде этого должно работать:
CREATE TABLE translation_en_lt ( id INTEGER, lt_translation MEDIUMTEXT, PRIMARY KEY (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8