首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在json中编码查询db返回空值

在json中编码查询db返回空值
EN

Stack Overflow用户
提问于 2012-06-01 16:02:28
回答 1查看 244关注 0票数 0

我有一个要用json编码的DB结果,以前我在将数据导入数据库时遇到了编码问题(phpmyadmin上的奇怪字符),但现在我在插入数据之前通过utf8_decode()修复了这个问题。

所以现在我检索了我的数据,但是字符串有问题...

代码语言:javascript
复制
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));

这给了我:

代码语言:javascript
复制
object(Application_Model_Product)#42 (13) {
  ["id_product"]=>
  string(6) "359805"
  ["id_community_ask"]=>
  NULL
  ["barcode"]=>
  string(13) "3000000010907"
  ["name"]=>
  string(51) "H2O AUDIO Waterproof-Ohrhörer Surge Pro Mini BA1-GY"
  ["description"]=>
  NULL
  ["image"]=>
  NULL
  ["status"]=>
  string(1) "2"
  ["nb_votes_halal"]=>
  string(1) "0"
  ["nb_votes_harram"]=>
  string(1) "0"
  ["date_created:protected"]=>
  NULL
  ["date_edited:protected"]=>
  NULL
  ["updated:protected"]=>
  string(1) "0"
  ["imported:protected"]=>
  string(1) "1"
}

string(173) "{"id_product":"359805","id_community_ask":null,"barcode":"3000000010907","name":null,"description":null,"image":null,"status":"2","nb_votes_halal":"0","nb_votes_harram":"0"}"

UTF-8
H2O AUDIO Waterproof-Ohrhörer Surge Pro Mini BA1-GY
H2O AUDIO Waterproof-Ohrhörer Surge Pro Mini BA1-GY
Revu encode: UTF-8
UTF-8
Revu: H2O AUDIO Waterproof-Ohrhörer Surge Pro Mini BA1-GY
H2O AUDIO Waterproof-Ohrhörer Surge Pro Mini BA1-GY
string(227) "{"id_product":"359805","id_community_ask":null,"barcode":"3000000010907","name":"H2O AUDIO Waterproof-Ohrh\u00f6rer Surge Pro Mini BA1-GY","description":null,"image":null,"status":"2","nb_votes_halal":"0","nb_votes_harram":"0"}"

你可以看到'name‘字段包含了一些东西,但是当我用json编码时,它告诉’null‘……我知道json只能在utf8中工作,这就是为什么我调用了一个mb_detect_encoding来确保我在utf8中……

你知道为什么“name”字段返回“null”吗?

EN

回答 1

Stack Overflow用户

发布于 2012-06-01 16:37:56

您需要执行以下任一操作:

代码语言:javascript
复制
mb_convert_encoding($product->name,"utf8","THE_NAME_CHARSET");

或者:

代码语言:javascript
复制
$product->name = iconv("THE_NAME_CHARSET","utf8",$product->name);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10846588

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档