今天抓数据的时候,发现js里的汉字全部为“\u738B\u6668”这样的字符串,没想到如何转到可识别的中文汉字,那么下面这段函数产生了……
直接贴code:
/**
* 将js的unicode转换为中文
* @param string $strHtml
* @return string
*/
public function charReplace($strHtml){
if(empty($strHtml)){
return '';
}
$pregReg = '/(\\u([\w]{4}))|([\x7f-\xff]+)/i';
$arrTempData = array();
preg_match_all($pregReg, $strHtml,$arrTempData);
if(!empty($arrTempData)){
//初始一个字符串变量
$str = '';
//循环处理
for($i=0;$i
$strTemp = $arrTempData[0][$i];
if (strpos($strTemp, '\u') === 0){
$strAry1 = base_convert(substr($strTemp, 2 , 2), 16, 10);
$strAry2 = base_convert(substr($strTemp, 4), 16, 10);
$strChr = chr($strAry1).chr($strAry2);
//如果不是linux系统,则转换
if(preg_match("/WIN/i",PHP_OS)){
$strChr = iconv('UCS-2', 'UTF-8', $strChr);
}
//$str .= $strChr;
$arrCharStartReplace[] = $arrTempData[0][$i];
$arrCharEndReplace[] = $strChr;
//echo $arrTempData[0][$i].'==='.$strCh."\r\n";
}
}
}
$strHtml = str_replace($arrCharStartReplace, $arrCharEndReplace, $strHtml);
return $strHtml;
}