微信公众平台回复乱码问题

2015年3月6日 · 45 字 · 1 分钟

很多微信公众平台的自动回复程序都是 ThinkWechat.class.php 这个类开发的,今天碰到一个莫名其妙的乱码问题,查问题发现是GB2312编码导致,所以要修改源码。

先增加一个方法:

/**
 * 检测是否UTF-8
 * @param $str
 * @return bool
 */
private function is_utf8($str)
{
    return preg_match('//u', $str);
}

找到

$this->data ['Content'] = $content;

修改为

if ($this->is_utf8($content)) {
    $this->data ['Content'] = $content;
} else {
    $this->data ['Content'] = iconv('gb2312', 'UTF-8//IGNORE', $content);
}