Php 在json中编码查询数据库返回空值
我有一个用json编码的DB结果,以前我在将数据导入DB时遇到编码问题(phpmyadmin上的奇怪字符),但现在我在插入数据之前通过utf8_decode()修复了它 所以现在我检索了我的数据,但是字符串有问题Php 在json中编码查询数据库返回空值,php,json,encoding,utf-8,Php,Json,Encoding,Utf 8,我有一个用json编码的DB结果,以前我在将数据导入DB时遇到编码问题(phpmyadmin上的奇怪字符),但现在我在插入数据之前通过utf8_decode()修复了它 所以现在我检索了我的数据,但是字符串有问题 echo '<pre>'; var_dump($product); echo '<br>'; var_dump( json_encode($product)); echo '</pre>
echo '<pre>';
var_dump($product);
echo '<br>';
var_dump( json_encode($product));
echo '</pre>';
echo '<br>'.mb_detect_encoding($product->name);
echo '<br>'.$product->name;
echo '<br>'.mb_convert_encoding($product->name, 'ISO-8859-1');
$product->name = 'H2O AUDIO Waterproof-Ohrhörer Surge Pro Mini BA1-GY';
echo '<br>Revu encode: '.mb_detect_encoding($product->name);
echo '<br>'.mb_detect_encoding($product->name);
echo '<br>Revu: '.$product->name;
echo '<br>'.mb_convert_encoding($product->name, 'ISO-8859-1');
echo '<br>';
var_dump( json_encode($product));
您可以看到“name”字段包含一些内容,但当我用json编码时,它会告诉我“null”…我知道json只在utf8中工作,这就是为什么我调用mb_detect_编码以确保我在utf8中
知道为什么“name”字段返回“null”吗?您需要执行以下操作之一:
$product->name = iconv("THE_NAME_CHARSET","utf8",$product->name);
或:
编码后是否可以尝试调用json\u last\u error()查看是否存在任何错误请尝试使用:$product->name=iconv(“YOURCHARSET”,“utf8”,“$product->name”);
mb_convert_encoding($product->name,"utf8","THE_NAME_CHARSET");
$product->name = iconv("THE_NAME_CHARSET","utf8",$product->name);