我有一个遗留系统,它将二进制数据发送和读取到一个现有的mysql表中(5.6.34版)。在我们的新系统中,我需要将相同类型的数据写入相同类型的表(以便旧系统的某些部分可以读取它)。然而,当我尝试写二进制数据时,mysql似乎去掉了高位字节范围内的任何内容(可能是无效的unicode)。
我不能换table。如何写入相同的数据(旧系统使用的是另一种语言的二进制mysql驱动程序,因此我无法复制它正在执行的任何操作)。
mysql> create table foobar (a_session longtext character set utf8 collate utf8_general_ci);
Query OK, 0 rows affected (0.14 sec)
mysql> insert into foobar values (_binary X'4D798053514C');
Query OK, 1 row affected, 1 warning (0.12 sec)
mysql> select * from foobar;
+-----------+
| a_session |
+-----------+
| My |
+-----------+
1 row in set (0.13 sec)
我需要一些更新/插入命令,它将显示如下内容:
| My�SQL |
和我在命令中发送的二进制字节相同。
1条答案
按热度按时间kjthegm61#
当运行这个小测试时,还提供
这个
80
不是很好的“性格”:也就是说,
latin1
(还有其他一些CHARACTER SETs
)将十六进制80解释为Euro
; 其他字符给你不太有趣的东西。你在期待什么??