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