- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我有一个带有 3 个嵌套数组的简单 php 结构。
我不使用特定对象,而是使用 2 个嵌套循环构建自己的数组。
这是我要转换为 Json 的数组的 var_dump 示例。
array (size=2)
'tram B' =>
array (size=2)
0 =>
array (size=3)
'name' => string 'Ile Verte' (length=9)
'distance' => int 298
'stationID' => int 762
1 =>
array (size=3)
'name' => string 'La Tronche Hôpital' (length=18)
'distance' => int 425
'stationID' => int 771
16 =>
array (size=4)
0 =>
array (size=3)
'name' => string 'Bastille' (length=8)
'distance' => int 531
'stationID' => int 397
1 =>
array (size=3)
'name' => string 'Xavier Jouvin' (length=13)
'distance' => int 589
'stationID' => int 438
在另一个脚本中,我有类似的结构,并且 json_encode
工作正常。所以我不明白为什么 json_encode
在这里不起作用。
编辑:编码似乎有问题。当 mb_detect_encoding
返回 ASCII 时,json_encode
可以工作,但是当它返回 UTF8 时,它就不再工作了。
Edit2 : json_last_error()
返回 JSON_ERROR_UTF8
表示:Malformed UTF-8 characters, possibly incorrectly encoded .
最佳答案
经过 2 小时的挖掘(cf Edits)
我发现了以下内容:
mb_detect_encoding
可能返回错误响应,某些字符串可能不是 UTF-8 utf8_encode()
解决了我的问题,但请参阅下面的注释这是一个递归函数,可以强制将数组中包含的所有字符串转换为 UTF-8:
function utf8ize($d) {
if (is_array($d)) {
foreach ($d as $k => $v) {
$d[$k] = utf8ize($v);
}
} else if (is_string ($d)) {
return utf8_encode($d);
}
return $d;
}
像这样简单地使用它:
echo json_encode(utf8ize($data));
注意:utf8_encode()根据文档将 ISO-8859-1 字符串编码为 UTF-8,因此如果您不确定输入编码 iconv()或 mb_convert_encoding()如评论和其他解决方案中所述,可能是更好的选择。
关于php - 为什么 json_encode 会返回一个空字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19361282/
我正在尝试创建一个程序,其中字符串的前三个字符重复给定次数,如下所示: foo('Chocolate', 3) # => 'ChoChoCho' foo('Abc', 3) # => 'AbcAbcA
我有以下字符串: std::string str = "Mode:AAA:val:101:id:A1"; 我想分离一个位于 "val:" 和 ":id" 之间的子字符串,这是我的方法: std::st
DNA 字符串可以是任意长度,包含 5 个字母(A、T、G、C、N)的任意组合。 压缩包含 5 个字母(A、T、G、C、N)的 DNA 字母串的有效方法是什么?不是考虑每个字母表 3 位,我们可以使用
是否有一种使用 levenstein 距离将一个特定字符串与第二个较长字符串中的任何区域进行匹配的好方法? 例子: str1='aaaaa' str2='bbbbbbaabaabbbb' if str
使用 OAuth 并使用以下函数使用我们称为“foo”(实际上是 OAuth token )的字符串加密 key public function encrypt( $text ) { // a
我是一名优秀的程序员,十分优秀!