Diary.34 Bug fixed and score arrived

这几天在弄的计划,其实进展不是很快,昨天在碰到MySQL乱码的问题,好不容易想到是字符集的问题,然后Google一下解决掉了。今天又遇到INSERT提示1366的问题。本来懒得找英文看的,随便“败毒”一下算了,结果果然找不到什么资料。转MySQL官网上,bug列表和论坛里面都有帖子,看了半天终于解决了这个问题。
现象:执行INSERT的时候报错:“#1366 - Incorrect string value: ‘\xFF\xFF\xFF\xFF…’ for column ‘[column_name]‘ at row [row_number]”,其中string为类型值也可能是text或者BLOB,FF替换为UTF-8编码的字符串,剩下两个方括号里面的很明显了。
解决办法:检查数据源,连接器和被INSERT的表,全部要是同一字符集。以我现在的计划为例:数据源为MySQL 5.0,WordPress 2.3.1的数据库,UTF-8编码;连接器为PHP 5.0自带的MySQL DLL;目标表为MySQL 5.0,latin1编码。我中间用PHP生成SQL文件以及执行SQL导入都碰到1366错误。最后改目标表全部为UTF-8编码(包括字段属性),解决问题。我运气还算不错,只是最后一步字符集不同,如果我当时PHP导出SQL的时候用的就是ASCII编码可能还查半天查不出来。
小小的提醒一下,如果要从UTF-8的表里面SELECT,要先“SET NAMES ‘UTF8′;”,或者”SET CHARACTER SET utf8;”,不然出来全部是问好,改浏览器的字符集也没用。
最后,November SAT分数已经出了,jinziling同学就已经out of mind了,并在blog上大写2400……我的就比较烂了,Physics是770,Mathematics Level 2是740,给中国人丢脸了,在这里说声对不起。