I'm calling json_encode() on data that comes from a MySQL database with utf8_general_ci collation. The problem is that some rows have weird data which I can't clean. For example symbol , so once it reaches json_encode(), it fails with json_encode(): Invalid UTF-8 sequence in argument.

我试过utf8_encode()utf8_decode(),即使是mb_check_encoding()也是如此,但它一直在打通,造成了很大的破坏.

Running PHP 5.3.10 on Mac. So the question is - how can I clean up invalid utf8 symbols, keeping the rest of data, so that json_encoding() would work?

使现代化下面是一种复制它的方法:

echo json_encode(pack("H*" ,'c32e'));

推荐答案

似乎符号是Å,但由于数据由不应该公开的姓氏组成,所以只显示了第一个字母,而且只显示了$lastname[0],这对于多字节字符串来说是错误的,并导致了整个麻烦.将其改为mb_substr($lastname, 0, 1)-效果很好.

Json相关问答推荐

如何在生产环境中更改 Flutter 应用程序中的数据模型?

如何在 Django 的模板语言中获取 json 键和值?

如何将西里尔字母转换为 utf16

字典和对象的模型创建问题

为 Sinatra 设置默认 content_type

json对象的大小? (以 KB/MB 为单位)

Dart - _InternalLinkedHashMap 如何转换为 Map

带有 Jackson 的不可变 Lombok 注释类

TypeError:“float32”类型的对象不是 JSON 可序列化的

JSON.parse 返回字符串而不是对象

主体上带有 Json 的 HTTP POST - Flutter/Dart

你如何在 Arrays of Arrays 上 OPENJSON

Kubernetes / kubectl - “必须指定容器名称”但看起来是这样吗?

我可以将字符串变量传递给 jq 而不是文件吗?

如何在 Swift [45] 可解码协议中解码 JSON 字典类型的属性

Swift 4 可编码;如何使用单个根级密钥解码对象

.NET Core:从 API JSON 响应中删除空字段

使用 UNION 时无法识别 json[] 类型的相等运算符

jq:按属性分组和键

React Js: Uncaught (in promise) SyntaxError: Unexpected token < in JSON at position 0