Konvertieren von ASCII-und UTF-8 in nicht-Sonderzeichen mit einer Funktion

So, ich Baue eine website, die eine Datenbank verwendet-feed, der bereits eingerichtet wurde und verwendet wurde, indem der client für alle anderen websites, für einige Zeit.

Füllen Sie diese Datenbank durch ein externes Programm, und ich habe keine Möglichkeit zu ändern, wie bekomme ich meine Daten.

Nun habe ich Folgendes problem, manchmal bekomme ich strings in UTF-8 und manchmal in ASCII - (ich hoffe, ich habe diese Begriffe Recht, Sie sind noch ein wenig vage, um mich manchmal).

So, ich könnte entweder dieses: Scénic oder Scénic.

Das problem ist jetzt, ich habe zu konvertieren, das auf nicht-Sonderzeichen (so wäre es Scenic) für urls.

Ich glaube nicht, dass es eine Funktion zur Umwandlung von é zu e (wenn Sie sagen) so dass ich ' ll wahrscheinlich benötigen, um erstellen Sie ein array für die, die mit allen Quell-und Zielorten, aber das größere problem ist die Konvertierung é zu é ohne zu brechen é wenn es darum geht, durch die Funktion.

Oder sollte ich einfach ein array erstellen mit alles
(so zum Beispiel: array('é'=>'e','é'=>'e'); etc.

Weiß ich, wie man é zu é dabei utf8_encode(html_entity_decode('é')) jedoch setzen é durch dieselbe Funktion zurück é.

Vielleicht bin ich an dieses der falsche Weg, aber in diesem Fall würde ich gerne wissen, wie ich sollte Ansatz.

  • html_entity_decode("éé",ENT_COMPAT,"UTF-8") funktioniert für mich - es gibt "éé". Maby Sie nur vergessen zu setzen-Codierung? Diese Arbeit sollte auf UTF-8 und auf den ersten 128 ASCII-bits(plain text), weil Sie die gleichen Werte in UTF-8 - es scheint, dass es genau das ist Ihr Fall.
  • Ah, gut, das löst das halbe problem 🙂
  • Tut iconv("UTF-8","ASCII//TRANSLIT","ééé") lösen den zweiten Teil?
  • html_entity_decode('éeé',ENT_COMPAT,"UTF-8"); tatsächlich Erträge �eé für mich (DOCTYPE, html und meta-charset UTF-8). Auf codepad.org es gibt éeé obwohl. Wenn ich dann tun iconv("UTF-8","ASCII//TRANSLIT",$input); auf, dass ich einen leeren string. Und iconv funktioniert nicht auf codepad, so kann ich nicht testen, es.
  • ideone.com/saxB7
  • Ich muss etwas falsch irgendwo anders, Wenn ich dies ausführen: ideone.com/QjoQk auf meiner Webseite bekomme ich diese Ausgabe: string(4) "�eé" string(0) "" string(13) "ccc�aaadfgdfg" string(3) "ccc" string(7) "Citro�n" string(5) "Citro"
  • Hmm, es war etwas, das mit der locale. Wenn ich die locale auf de_DE.UTF-8 nach diesem Beitrag es funktioniert. Das problem ist, dass ich mein Gebietsschema für andere Funktionen, und diese beiden Chaos einander =/
  • Auch versuchen ßæıLJ. Das sollte ssaeiLJ.

InformationsquelleAutor Kokos | 2011-09-23
Schreibe einen Kommentar