我遇到了一个奇葩的问题,在向数据库写入数据的时候,包含中文全角标点符号的内容会被截断。源文本采用 GB2312 编码。数据库采用 utf8_general_ci .中间没有进行过转码
举个例子:
update `hello` set `text`= 'array(\'key\'=> \'hello! bad”this was hidden\')'这绝对是个奇葩的问题,写入数据库后再去看,就是 array('key'=> 'hello! bad 后面的 this was hidden') 不见了
我起初怀疑是编码问题导致mysql误将全角符号的一个字符当成了单引号,致使字符串提早结束。可仔细一想那后面的内容总不可能平白无故的消失了啊。
我试着转换过几种编码来 urlencode() 后观察,但我没看出它们和单引号的urlencode %27 有任何相同之处本来原计划今天完工的,结果遇到这种问题。实在没办法,谁遇到过这种情况,或者有什么调试建议,都请帮我!

解决方案 »

  1.   

    本帖最后由 xuzuning 于 2012-11-15 20:20:16 编辑
      

  2.   

    在mysql链接语句中,尝试试用mysql_query("SET NAMES GB2312");试试
    或者在my.ini配置文件中,设置基础编码类型为GB2312.不建议试用不同编码形式或编码校对作为储存和读取的形式.储存形式可以试用gb2312_chinese_ci.不同的前台编码和后台,很容易造成乱码或一系列摸不着头绪的麻烦..