发布于 5年前
微信开发时,返回的消息中文乱码问题
在微信公众号关键词回复开发过程中,因项目需求使用 GBK编码,导致返回的中文字符在微信中显示乱码,求解决办法。部分代码如下:
$textTpl = "<xml>
<ToUserName><![CDATA[%s]]></ToUserName>
<FromUserName><![CDATA[%s]]></FromUserName>
<CreateTime>%s</CreateTime>
<MsgType><![CDATA[%s]]></MsgType>
<Content><![CDATA[%s]]></Content>
<FuncFlag>0</FuncFlag>
</xml>";
if($msgType == 'text'){
if(!empty( $keyword ))
{
$msgType = "text";
$contentStr = "我是中文,你发送了 ".$keyword;
$resultStr = sprintf($textTpl,$fromUsername,$toUsername,$time,$msgType,$contentStr);
echo $resultStr;
}
}
解决办法:
只需要对返回的内容进行字符编码转换即可,对 $contentStr
进行处理 $contentStr = iconv('GBK','UTF8',$contentStr);
if($msgType == 'text'){
if(!empty( $keyword ))
{
$msgType = "text";
$contentStr = "我是中文,你发送了 ".$keyword;
$contentStr = iconv('GBK','UTF8',$contentStr);
$resultStr = sprintf($textTpl,$fromUsername,$toUsername,$time,$msgType,$contentStr);
echo $resultStr;
}
}