【发布时间】:2012-09-04 14:38:41
【问题描述】:
这可能是一个非常简单的问题,但我找不到任何相关信息。
我使用的系统会聚合来自各种来源的大量数据,然后将这些数据存储在数据库中。在大多数情况下,系统运行良好,但有时我们会遇到一个问题,即数据可能会出现我们系统不喜欢的尴尬字符编码(例如,当数据是另一种语言,如法语时)。
数据被传递到我们的处理服务器(我们使用 Gearman),为了确保与源有关的所有信息都被传递,我们使用我们需要的一切对数组进行 json_encode。我的问题是:如果我将 json_encode 包装在 try/catch 块中,导致“PHP 警告:json_encode(): Invalid UTF-8 sequence in argument”消息的事情会触发 catch 块激活吗?
谢谢!
【问题讨论】:
-
我不认为
json抛出异常...... -
你想问如果你这样做它是否会产生警告,或者它正在产生警告并且你已经尝试过?
-
您可以尝试在调用前加上
@来抑制错误并检查返回值。例如。if (($str = @json_encode($foo)) !== FALSE) { ...do your stuff, encoding succeeded... }