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.
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.
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?)
Tags und Links php character-encoding json