iconv()与函数utf8_encode()

时间:2012-02-29 12:48:39

标签: php json character-encoding

当你有一个不同于UTF-8的字符集并且需要将它放在JSON格式上以将其迁移到数据库时,有两种方法可以在PHP中使用,调用utf8_encode()和iconv()。我想知道哪一个有更好的性能,何时方便使用。

2 个答案:

答案 0 :(得分:14)

  

当你有一个不同于UTF-8的字符集时

Nope - utf8_encode()仅适用于 ,用于将ISO-8859-1字符串转换为UTF-8。 Iconv提供了大量的源和目标编码。

重新表现,我不知道utf8_encode()内部如何运作以及它使用了哪些库,但我的预测是没有太大的区别 - 至少不是“正常”的数据量字节或千字节。如果有疑问,请做一个基准。

我倾向于使用iconv(),因为更清楚的是从字符集A到字符集B的转换。

此外,iconv()可以更详细地控制遇到无效数据时的操作。将//IGNORE添加到目标字符集将导致它以静默方式删除无效字符。这在某些情况下可能会有所帮助。

答案 1 :(得分:0)

我建议你编写自己的功能。 它将长达2-3行,并且比使用locale,iconv等问题更好。

例如: Fix Turkish Charset Issue Html / PHP (iconv?)