首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >utf8_encode不工作了,空的json_encode?

utf8_encode不工作了,空的json_encode?
EN

Stack Overflow用户
提问于 2014-11-17 16:11:07
回答 4查看 1.6K关注 0票数 0

我有以下代码:

代码语言:javascript
复制
$rows=array();
while($row=mysql_fetch_assoc($result))
{
    echo $row["titel"];                           
    $rows[] = array_map('utf8_encode', $row);
}
echo json_encode($rows);

不知何故,输出是空的,尽管我使用了"json_encode“函数。我的列的排序规则区分了utf8_bin和utf8_general_ci。"echo $row"titel"“输出我的表中包含的每个条目的标题,所以我猜错误一定发生在编码中。

我将感谢您的每一个回答:)

EN

回答 4

Stack Overflow用户

发布于 2014-11-17 16:29:30

你可以使用这个想法:

代码语言:javascript
复制
$rowUtf8encode[]=array_map('utf8_encode',$row);
$rows[]=array_map('json_encode',$rowUtf8encode);
echo($rows);

它的工作方式很有趣

票数 4
EN

Stack Overflow用户

发布于 2014-11-17 16:24:33

似乎你遗漏了php包:"php-xml“。确保您的服务器上有"php-xml“(或"php5-xml”)包。

您可以通过在您的服务器上运行以下命令进行检查:

代码语言:javascript
复制
rpm -qa | grep 'php-xml'

代码语言:javascript
复制
rpm -qa | grep 'php5-xml'
票数 0
EN

Stack Overflow用户

发布于 2014-11-17 16:47:46

让数据库来编码吧!

首先,你应该知道一些事情:

  • MySQL的latin1是,不是ISO8859-1,而是CP1252!查看here.
  • utf8_encode编码仅从ISO8859-1到UTF-8的差异
  • 要转换编码,最好使用mb_convert_encoding (否则iconv)
  • mysql_函数将被弃用!)请使用PDOmysqli!(查看准备好的statements)
  • json_encode是否会生成错误消息,您可以通过调用json_last_error_msg

来获取

因此,假设您的应用程序使用latin1编码的字符串。然后,您只需在需要时更改mysql连接的字符集:

代码语言:javascript
复制
//Change to utf8
mysql_query("SET NAMES 'utf8'");
$result = mysql_query($sqlQuery);
$rows = array();
while($row = mysql_fetch_assoc($result)) {
    $rows[] = $row;
}
echo json_encode($rows);
//Back to latin1 (if needed)
mysql_query("SET NAMES 'latin1'");
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26968166

复制
相关文章

相似问题

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