当前位置: 首页 > 面试题库 >

json_encode():参数中的UTF-8序列无效

董子航
2023-03-14
问题内容

我正在json_encode()使用utf8_general_ci排序规则调用来自MySQL数据库的数据。问题是某些行包含我无法清除的怪异数据。例如,符号,所以一旦到达json_encode(),它就会失败json_encode(): Invalid UTF-8 sequence in argument

我已经尝试过utf8_encode()utf8_decode(),即使这样做,mb_check_encoding()但它会不断通过并造成严重破坏。

在Mac上运行PHP 5.3.10。因此,问题是-如何清除无效的utf8符号,保留其余数据,以便json_encoding()可行?

更新。这是一种重现它的方法:

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

问题答案:

好像符号是Å,但由于数据由不应公开的姓氏组成,因此只显示了第一个字母,并由just来完成$lastname[0],这对于多字节字符串是错误的,并造成了整个麻烦。更改为mb_substr($lastname, 0, 1)-就像魅力一样。



 类似资料:
  • 问题内容: 如何将带有国际字符的json编码的字符串保存到数据库,然后在浏览器中解析解码的字符串? 问题答案: 这是一个编码问题。看起来在某些时候,数据被表示为ISO-8859-1。 流程的每个部分都需要UTF-8编码。 数据库连接 数据库表 您的PHP文件(如果您在文件中使用特殊字符,如上面的示例所示) 您输出的标题

  • 问题内容: 因此,我有一个字符串数组,所有字符串都使用系统默认的 ANSI 编码,并从SQL数据库中提取。因此,存在256个不同的可能字符字节值(单字节编码)。 有没有一种方法可以使我工作并显示这些字符,而不必在我的所有字符串上使用并最终得到类似的东西? 还是这是JSON的标准? 问题答案: 有没有一种方法可以使json_encode()工作并显示这些字符,而不必在所有字符串上都使用utf8_en

  • 问题内容: 这个问题已经在这里有了答案 : UTF-8贯穿始终 (15个答案) 5年前关闭。 寻求 我正在寻找具有重音符号的行。列()的编码为。 编码 以下查询使用phpMyAdmin 返回: 以下显示期望值(称为函数): 显示的值: 然后使用以下代码对数组进行编码: 问题 Web浏览器收到以下值: 代替: (或等效的编码形式。) 题 文档指出可以在UTF-8上使用。我可以看到将值从LATIN1编

  • 问题内容: 我有一个包含阿拉伯字符的xml文件。尝试解析文件时,出现异常,MalformedByteSequenceException:2字节UTF-8序列的无效字节2。我使用POI DOM来解析文档。 日志是 该异常仅在Windows Machine中出现,在Linux Machine中不出现。我该如何解决此问题。任何建议都应是可取的。 问题答案: 我已解决问题,方法是使用UTF8格式创建XML

  • 问题内容: 我想排序一个,但问题是我的母语字符-我的字母是这样的:。如您所见,字符从头到尾排在第二位,在字母上排第二位,因此在对数组进行排序后,它的排序不正确。我所有的母语字符都移到了数组的末尾。例: 输出: 应该: 问题答案: 您应该使用Collat​​or类。 例如 然后使用此整理器对集合进行排序

  • 问题内容: 当(杰克逊,在这种情况下)JSON引擎尝试解析一些未使用UTF-8编码的JSON时,会发生此错误。 如何告诉引擎它应该期望与UTF-8不同的东西,例如UTF-16? 错误日志: 问题答案: JSON数据必须编码为UTF-8,UTF-16或UTF-32。JSON解码器可以通过检查字节流的前四个八位字节来确定编码: 听起来好像服务器正在以某种非法编码(ISO-8859-1,Windows-