线上报 500 错误,定位到是 json 解析失败,特定内容存在乱码,而造成乱码的是原因是 rtrim 截取中文字符时末位可能乱码。我们可以自定义一个函数,通过mb_substr实现相同的功能:
/**
* 自定义rtrim函数,完美支持中文
* @param $content 要截取的内容
* @param $tail 要截取掉的内容
*
* @return String
*/
function r_trim($content, $tail)
{
$len = mb_strlen($tail, 'utf-8');
return $tail == mb_substr($content, -$len, $len, 'utf-8') ? mb_substr($content, 0, -$len, 'utf-8') : $content;
}
注意,使用此函数要先确认服务器上的php开启了mb_substr函数。