【发布时间】:2017-12-01 15:17:55
【问题描述】:
我有一个 PHP 函数,它使用一个字符串参数在内部构建对象图,然后使用 json_encode() 创建 JSON 字符串,然后将 JSON 字符串发布到远程 Web 服务。
像这样:
function send($text)
{
$payload = array(
'text' => $text
// Set additional properties here ...
);
$payload_json = json_encode($payload);
// Post $payload_json to remote service with Curl ...
}
来自json_encode的手册(http://php.net/manual/en/function.json-encode.php)
所有字符串数据必须是 UTF-8 编码。
我看到了几个选项:
- 尝试验证 $text 实际上是 UTF-8,如果不是则抛出异常
- 尝试检测 $text 中的编码并在必要时将其转换为 UTF-8
- 当 $text 不是 UTF-8 时返回 false
- 在文档中与我的 API 用户沟通 $text 必须为 UTF-8
- 使用 json_last_error() 检查错误,如果遇到错误则抛出异常
最佳做法是什么?
【问题讨论】:
标签: php string character-encoding