当您有一个不同于 UTF-8 的字符集,并且需要将其转换为 JSON 格式以将其迁移到数据库时,可以在 PHP 中使用两种方法,调用 utf8_encode() 和 iconv()。我想知道哪个性能更好,什么时候使用它们更方便。
最佳答案
when you have a charset different of UTF-8
不 - utf8_encode()
仅适用于将 ISO-8859-1 字符串转换为 UTF-8。 Iconv 提供了大量的源和目标编码。
关于性能,我不知道 utf8_encode()
在内部如何工作以及它使用什么库,但我的预测是不会有太大差异 - 至少在“正常”上不会以字节或千字节为单位的数据量。如有疑问,请进行基准测试。
我倾向于使用iconv()
,因为它更清楚地表明存在从字符集A到字符集B的转换。
此外,iconv()
提供了更详细的控制,以控制遇到无效数据时的操作。将 //IGNORE
添加到目标字符集将导致它静默丢弃无效字符。这在某些情况下可能会有所帮助。
关于php - iconv() 对比utf8_encode(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9499467/