今天遇到了个问题,基本调试了一整天,痛苦啊,现在才找到问题所在。
我的内存中有个Map,key是title,mysql查询时不区分大小写的,所有title都转变为了大写。
我根据title去数据库中查数据,包装为一个对象,然后根据对象的title从map中取出数据,按理说是不应该取不到的,但有一条就是死活说map中没有这个key值,这条数据的标题是“BENCHMARKING SPATIAL JOINS A LA CARTE”。
然后我把map中所有的key打印了出来,查询确实没有这个title,但有一条很相似的“BENCHMARKING SPATIAL JOINS à LA CARTE”。
我把他们放到一块,好看清区别:
也就是mysql查询时不但不区分大小写,而且也不区分à和a。
而且我发现在Chorme上用ctrl+f搜索是也不区分这两个字符:
在猎豹是是区分的:
为什么啊??
我在PilotEdit中查了查着几个字符的编码,如下:
这应该是GBK编码。
下面我去查一查,mysql查询时大小写不敏感,看看能找到什么。先保存下。2015.06.25 17:32
找到答案了,参考:
http://dev.mysql.com/doc/refman/5.0/en/case-sensitivity.html(答案这在)
http://*.com/questions/3936967/mysql-case-insensitive-select (从这找到答案入口)
http://dev.mysql.com/doc/refman/5.0/en/charset-binary-op.html (这个可以了解下)
我决定翻译下http://dev.mysql.com/doc/refman/5.0/en/case-sensitivity.html,以加深理解。先保存下,下班了2015.06.25 18:11
参考:
http://www.w3school.com.cn/tags/html_ref_entities.html
http://baike.baidu.com/link?url=9IftfCW40_zPcZzw4jJQFdIdoC0Aa-eEntfytPFnGFB9GO9np5Q7cX1eYRFykkdkXHEnjhE6gdfijwPkvflmY_
http://blog.xieyc.com/common-code-standard-unicode-utf-iso-8859-1-etc/
https://dev.mysql.com/doc/refman/5.1/en/charset-mysql.html
http://collation-charts.org/mysql60/mysql604.latin1_swedish_ci.html
简单修改了下程序,感觉还有很多要看的,先告一段落吧。2015.06.26 11:33