iconv () Vs. utf8_encode ()

8

Wenn Sie einen anderen Zeichensatz als UTF-8 haben und Sie ihn in das JSON-Format übertragen müssen, um ihn in eine Datenbank zu migrieren, gibt es zwei Methoden, die in PHP verwendet werden können und utf8_encode () und iconv () aufrufen. Ich würde gerne wissen, welche besser Leistung, und wann ist es bequem, den einen oder anderen zu verwenden.

    
Pedro Teran 29.02.2012, 12:48
quelle

2 Antworten

14
  

wenn Sie einen anderen Zeichensatz als UTF-8 haben

Nein - utf8_encode() eignet sich nur für zum Konvertieren einer ISO-8859-1-Zeichenfolge in UTF-8. Iconv bietet eine Vielzahl von Quell- und Zielkodierungen.

Re Leistung, ich habe keine Ahnung, wie utf8_encode() intern arbeitet und welche Bibliotheken es verwendet, aber meine Vorhersage ist dort wird nicht viel von einem Unterschied sein - zumindest nicht auf "normalen" Datenmengen in den Bytes oder Kilobyte. Machen Sie im Zweifelsfall einen Benchmark.

Ich verwende iconv() , weil es klarer ist, dass es eine Umwandlung von Zeichensatz A in Zeichensatz B gibt.

Außerdem bietet iconv() eine detailliertere Kontrolle darüber, was zu tun ist, wenn ungültige Daten gefunden werden. Durch das Hinzufügen von //IGNORE zum Zielzeichensatz werden ungültige Zeichen automatisch gelöscht. Dies kann in bestimmten Situationen hilfreich sein.

    
Pekka 웃 29.02.2012, 12:50
quelle
0

Ich empfehle Ihnen, Ihre eigene Funktion zu schreiben. Es wird 2-3 Zeilen lang und es wird besser sein als mit Locale, iconv etc. Probleme zu kämpfen.

Zum Beispiel: Behebung des Problems mit dem türkischen Zeichensatz Html / PHP (iconv?)

    
trante 18.03.2012 12:25
quelle

Tags und Links