我有数据库表:
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
小端。解码
cABhAHMAaQBzAGw= 转换为十六进制结果为 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')
;两者都不起作用。