我试图理解Latin1和UTF8之间的区别,并且大多数情况下我得到它,但是,在测试时我得到一些奇怪的结果并且可以使用一些帮助澄清
我正在测试'é'(带有急性的拉丁文小写字母E),下面的链接显示了十六进制c3a9
我设置了一个数据库,并指定utf8作为字符集,然后创建一个以utf8作为字符集的表,并在将连接和客户端字符集设置为UTF8后插入一个带有字符'é'的记录
当我从test_table中选择hex(字段)字段时,我得到:
十六进制(字段),字段C3A9,é
这很好,与我读到的一致,但是,当我使用latin1字符集完全相同时,我得到以下内容:
十六进制(字段),字段C3A9,é
但是如果我输入char(x'E9'),它应该是é的单字节Latin1等价值我设法使用'set names UTF8'正确显示它但是在设置连接和客户端时它没有正确显示到Latin1
任何人都可以澄清吗? - 在UTF8和Latin1中,Latin1字符不应该是单字节(Hex E9)吗?还是我完全误解了一切?
谢谢