作者buganini (霸格尼尼)
看板Database
标题Re: [系统] MySQL 5.1 / MySQL 3.23 在big5上不相容
时间Sat Dec 25 01:32:33 2010
※ 引述《pingsky (PP)》之铭言:
: : 你出问题的的byte sequence是fbf3
: : mysql5的big5用的是cp950的表
: : 我在http://unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP950.TXT
: : 里面找不到
: : 也就是说他对mysql5来说根本就是illegal sequence
: : 你可以把他取代为A148 (全形问号)
: : 或是成为被迫使用latin1的族群
: : 推 LPH66:和 UAO 的日文问题是同一件事... 12/25 01:18
: : 推 pingsky:LPH66 大, 我是要打 5C 没错, 手残又太快而打错了.. 12/25 01:19
: 推文要等 200 多秒.. 看板主大大是希望大家拼命灌水了
: 事实上我的问题点 buganini 大终於点出来了:
: 出问题的的byte sequence是fbf3, 他对mysql5来说根本就是illegal sequence
: 可是为什麽会说是 5.1 板的问题呢? 因为它对 3.23 , 4.1.22 来说是 ok 的
: 3.23 , 4.1 的 big5 吃, 然後 5.1 的 big5 不吃, 这不正是它向後相容的 bug ?
: 而为什麽会把 5C 拿出来提呢 ? 正是要表达连被迫改用 latin1 都不可行呀
因为big5 table一团乱
http://moztw.org/docs/big5/
台湾人自己都搞不清楚了
而且 重点是有些邪恶的非对称的table...
能保证安全使用的table就只有cp950而已..
改latin1不会不可行呀 就是加个escape而已
而把字串放进sql要escape是一种常识 (误) .. 其实也没误
除非是有邪恶的别人写的旧程式..
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.135.231.23
1F:推 pingsky:一百支程式可行, 上万支程式.. 你说可不可行呢.... 12/25 01:36
2F:→ buganini:escape本来就应该在 如果没有我只能说你有东西错用了 12/25 01:39
如果是PHP
那该用的是:
1.适当的set names
2.mysql_real_escape_string or prepare-function
不该用的是
1.magic_quote
2.addslashes
※ 编辑: buganini 来自: 220.135.231.23 (12/25 01:43)
3F:推 pingsky:唉..我好想回你上面修文说的那段,但我老婆说快两点了.. 12/25 01:53
4F:推 pingsky:先晚安了.. 12/25 01:56
5F:→ buganini:晚安:) 12/25 02:00