【问题标题】:json_encode utf-8json_encode utf-8
【发布时间】:2012-09-27 17:38:02
【问题描述】:

我想知道为什么 json_encode 回显“null”并且我使用西班牙字符作为“ñ”

$link=mysql_connect("localhost","josilandia","*****");
mysql_select_db("critica",$link);
mysql_query("SET NAMES utf8");
$region="Mosel-Saar-Ruwer";

$resultado=mysql_query("SELECT marcavino,comentario,estrellas FROM recomendacion2
 WHERE region='$region'");

$recomendacion=array();   
while ($row = mysql_fetch_assoc($resultado)) {
   $lamarcavino =utf8_decode($row['marcavino']);
   $elcomentario =utf8_decode($row['comentario']);

   $laestrella = $row['estrellas'];
   $arr=array('marcavino'=>"$lamarcavino",'comentario'=>"$elcomentario",'estrellas'=>"$laestrella");
     $recomendacion[]= $arr;

  print(json_encode($recomendacion));

【问题讨论】:

    标签: php mysql encoding utf-8 json


    【解决方案1】:

    $lamarcavinoutf8_decode() 之后是ISO 8859-1,因为utf8_decode() converts from UTF-8 to ISO 8859-1

    json_encode()does only support UTF-8 和 ISO 8859-1 中的一些高位字符在 UTF-8 中无效。

    【讨论】:

    • 但 mb_detect_encoding 显示 UTF-8
    • 1.它应该被称为mb_guess_encoding()。 2.至少将第三个参数设置为true。 3. 在我的系统上,它总是显示 UTF-8,无论我输入什么内容。 4. 你有没有看到它可以实际检测到哪些字符集 (mb_detect_order())?
    • 我解决了,但我忘了提到一个 android 应用程序读取了脚本
    • 问题出在数组 $arr $arr= array('marcavino'=>utf8_encode("$lamarcavino"),'commentario'=>utf8_encode("$elcomentario"),'estrellas' =>"$laestrella");
    • 您也可以只删除 utf8_decode。您现在实现它的方式将丢失所有不在 ISO 8859-1 中的字符。
    猜你喜欢
    • 1970-01-01
    • 2011-05-03
    • 2011-08-28
    • 2011-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-06
    • 1970-01-01
    相关资源
    最近更新 更多