jquery中Ajax提交配合PHP使用的注意事项-编码

  问题:Ajax提交的数据的编码为utf-8,并且返回的数据也要求是utf-8的,如果说你的系统不是utf-8编码的话,那会让你痛不欲生!

  解决方法:(比较笨拙的方法,但是很好用)

    对于接收的数据,使用mb_convert_encoding()方法进行转码:

      mb_convert_encoding($receiveData'GBK''UTF-8');

    对于返回的数据,同样使用mb_convert_encoding()方法进行转码:

      mb_convert_encoding($rebackData'UTF-8''GBK');

  关键:此处为什么不用iconv()方法进行转码,而用mb_convert_encoding()进行转码?

    这是因为iconv()方法存在缺陷,如果遇到一些特别字符时,如:"—",英文名中的"."等等字符,转换就断掉了。这些字符后的文字都没法继续转换了。

    个人建议碰到转码问题时采用mb_convert_encoding比较保险。

  补充:json_encode函数对中文支持很恶心,只能是UTF-8编码,那么大部分老系统使用其他编码(GBK,GB2312),json_encode去转换数组/对象成为JSON对象都会变成空!

原文地址:https://www.cnblogs.com/wxdblog/p/7561968.html