首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何查看存储在MySQL列中的原始字节?

如何查看存储在MySQL列中的原始字节?
EN

Stack Overflow用户
提问于 2009-12-10 23:37:10
回答 3查看 14.3K关注 0票数 19

我有一个正确设置为UTF8字符集的MySQL表。我怀疑插入到我的某一列中的某些数据已经被双重编码。我希望看到一个不间断的空格字符(UTF-8 0xC2A0),但从该表中选择此列时得到的是四个八位字节(0xC3A2 0xC2A0)。这就是我所期望看到的,如果在某个时刻有人将UTF-8 0xC2A0视为ISO-8859-1,然后在插入到MySQL之前再次尝试编码为UTF-8。

在上面看到四个八位字节的位置上,我的测试涉及使用Perl的DBD::mysql从MySQL中选择这一列。我想把Perl和DBD::mysql从等式中去掉,以验证这四个二进制八位数实际上就是MySQL存储的内容。有没有一种方法可以直接用SQL查询做到这一点呢?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-12-10 23:46:57

代码语言:javascript
复制
mysql> SELECT HEX(name) FROM mytable;
+-----------+
| hex(name) |
+-----------+
| 4142C2A0  | 
+-----------+
票数 30
EN

Stack Overflow用户

发布于 2009-12-10 23:40:17

为什么不试试二元运算符呢?

“二进制运算符将其后面的字符串转换为二进制字符串。这是一种强制逐字节而不是逐个字符执行列比较的简单方法。”

http://dev.mysql.com/doc/refman/5.0/en/cast-functions.html

希望这能有所帮助!

票数 4
EN

Stack Overflow用户

发布于 2009-12-10 23:47:20

您可以尝试使用十六进制()函数[http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_hex]。在文档中,SELECT HEX('abc');返回616263

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1881832

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档