我有这个代码来生成json数组以发送到Android App,但是当我得到值与Accents 时,我得到 NULL 值。
这是我的代码:
<?php
header("Content-Type: text/html; charset=ISO-8859-1",true);
include "db_connect.php";
$userid = $_REQUEST['userid'];
$strSQL = "SELECT * FROM `mensages` WHERE `iduser` = '$userid' AND `read` = '0' ORDER BY `id` DESC";
$objQuery = mysql_query($strSQL);
$intNumField = mysql_num_fields($objQuery);
$resultArray = array();
while($obResult = mysql_fetch_array($objQuery))
{
$arrCol = array();
for($i=0;$i<$intNumField;$i++)
{
$arrCol[mysql_field_name($objQuery,$i)] = $obResult[$i];
}
array_push($resultArray,$arrCol);
}
mysql_close($objConnect);
echo json_encode($resultArray);
?>
答案 0 :(得分:0)
您可以将此PHP函数添加到您的代码中:
public static function normalizeChars($s) {
$replace = array(
'À'=>'A', 'Á'=>'A', 'Â'=>'A', 'Ã'=>'A', 'Ä'=>'Ae', 'Å'=>'A', 'Æ'=>'A', 'Ă'=>'A',
'à'=>'a', 'á'=>'a', 'â'=>'a', 'ã'=>'a', 'ä'=>'ae', 'å'=>'a', 'ă'=>'a', 'æ'=>'ae',
'þ'=>'b', 'Þ'=>'B',
'Ç'=>'C', 'ç'=>'c',
'È'=>'E', 'É'=>'E', 'Ê'=>'E', 'Ë'=>'E',
'è'=>'e', 'é'=>'e', 'ê'=>'e', 'ë'=>'e',
'Ğ'=>'G', 'ğ'=>'g',
'Ì'=>'I', 'Í'=>'I', 'Î'=>'I', 'Ï'=>'I', 'İ'=>'I', 'ı'=>'i', 'ì'=>'i', 'í'=>'i', 'î'=>'i', 'ï'=>'i',
'Ñ'=>'N',
'Ò'=>'O', 'Ó'=>'O', 'Ô'=>'O', 'Õ'=>'O', 'Ö'=>'Oe', 'Ø'=>'O', 'ö'=>'oe', 'ø'=>'o',
'ð'=>'o', 'ñ'=>'n', 'ò'=>'o', 'ó'=>'o', 'ô'=>'o', 'õ'=>'o',
'Š'=>'S', 'š'=>'s', 'Ş'=>'S', 'ș'=>'s', 'Ș'=>'S', 'ş'=>'s', 'ß'=>'ss',
'ț'=>'t', 'Ț'=>'T',
'Ù'=>'U', 'Ú'=>'U', 'Û'=>'U', 'Ü'=>'Ue',
'ù'=>'u', 'ú'=>'u', 'û'=>'u', 'ü'=>'ue',
'Ý'=>'Y',
'ý'=>'y', 'ý'=>'y', 'ÿ'=>'y',
'Ž'=>'Z', 'ž'=>'z'
);
return strtr($s, $replace);
}
然后,您可以使用$obResult[$i];
normalizeChars($obResult[$i];)
这会改变您的字母,并带有正常字母的重音,手机可以处理。