iconv () Vs. utf8_encode ()

когда у вас есть кодировка, отличная от UTF-8, и вам нужно поместить ее в формате JSON для переноса ее в БД, есть два метода, которые можно использовать в PHP, вызывая utf8_encode () и iconv (). Я хотел бы знать, какая из них имеет лучшую производительность, и когда удобно использовать ту или иную.

Solutions Collecting From Web of "iconv () Vs. utf8_encode ()"

когда у вас есть кодировка, отличная от UTF-8

utf8_encode()utf8_encode() подходит только для преобразования строки ISO-8859-1 в UTF-8. Iconv предоставляет огромное количество исходных и целевых кодировок.

Re, я не знаю, как utf8_encode() работает внутри и в каких библиотеках он использует, но мой прогноз там не будет иметь большого значения – по крайней мере, не на «нормальных» количествах данных в байтах или килобайтах. Если вы сомневаетесь, сделайте бенчмарк.

Я предпочитаю использовать iconv() потому что яснее, что есть преобразование из набора символов A в набор символов B.

Кроме того, iconv() предоставляет более подробный контроль над тем, что делать, когда он сталкивается с недействительными данными. Добавление //IGNORE к целевому набору символов приведет к бесшумному отключению символов. Это может быть полезно в определенных ситуациях.

Я рекомендую вам написать свою собственную функцию. Это будет 2-3 строки в длину, и это будет лучше, чем борьба с языками, значками и т.д.

Например: Исправить турецкий Charset Issue Html / PHP (iconv?)