• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Textfehler in Array-Ausgabe ändern...

DeathBoy

Neues Mitglied
Hi, ich lese über den youtube Feed die Videos eines Benutzerkontos aus, und lasse die per PHP auf der Homepage anzeigen.

Hier gibt es ein Array der mir den Titeltext des Videos ausliefert. Der Buchstabe "ö" wird mir hier als "ö" ausgegeben!
Gibt es hier eine möglichkeit mit einen Befehl einzugreifen wo man sagt:

Buchstabe "ö" von Array $xyz umändern in "ö" ???

Gruß Mike

Edit: oder noch eine Möglichkeit wäre wenn ich angeben kann damit das array eine andere Zeichenfolge haben soll...
 
Zuletzt bearbeitet:
Bevor Du irgendwelche Zeichen versuchst umzuwandeln, solltest Du dir den Zeichensatz des Feeds anschauen. Ich nehme stark an, dass er in utf8 ist und deine Seite in irgendeinem anderen Zeichensatz. Daher wird das Zeichen so seltsam dargestellt.
 
threadi, ja genau das meinte ich mit meinen edit.
hab das jetzt so gelöst:

PHP:
$sonderzeichen=array( "ö" => "ö", "ü" => "ü", "ß" => "ß","ä" => "ä", "Ä" => "Ä", "Ãœ" => "Ü", "Ö" => "Ö", "é" => "Ë");
$media->group->title = strtr($media->group->title, $sonderzeichen);
 
Nein, das meintest Du nicht. Du sprichst von Zeichenfolge. Ich spreche von Zeichensatz. Und das Du irgendwas mit dem Zeichensatz machst, kann ich in deinem Quellcode nicht erkennen.
 
ok dann habe ich mich falsch ausgedrückt. Ich meine auch keinen Zeichensatz sondern die "Zeichenkodierung" ;)
und anhand der Kodierung habe ich es nicht gelöst, sondern eben mittels den oben genannten Schema...
aber wenn jemand einen Tip hat wie ich die Kodierung für dieses Array ändern kann, dann wäre ich echt dankbar!
 
Mit PHP kann man den Zeichensatz/die Zeichenkodierung z.B. mit iconv() ermitteln und auch die Zeichen in etwas passendes umwandeln.
 
Auch wenn ich iconv nicht kenne, den Zeichensatz musst du ja nicht erkennen.
Hauptsache das Ergebnis stimmt - in deinem Fall.

Aber ich denke utf8_encode/utf8_decode ist eher die Lösung für dich. Bei professionellen Sachen wie Youtube kannst du davon ausgehen dass sie UTF-8 als Zeichensatz verwendet haben. Mir sagt meine Glaskugel dass du dir selbst unnötigerweise Steine in den Weg gelegt hast und ISO-8859-1 als Zeichenkodierung für dein Dokument verwendest.

utf8_decode macht also wahrscheinlich genau das was du brauchts: Es wandelt das Youtube UTF-8 in Dein ISO-8859-1 um.
 
Zuletzt bearbeitet:
Das nicht, ich dachte um einen String geht es nicht sondern um die Kodierung der Webseite.
Egal, utf8-decode() macht das Problem hinfällig, besser wäre die eigene Seite auf utf-8 umstellen.
 
Ja, aber utf8_decode(), macht ja nix anderes, als einen String zu dekodieren ... Das was wohl "relativ" zuverlässig funktioniert ist mb_dectect_encoding. Sonst fällt mir auch nur das "file" Tool unter Unix ein ... mit
PHP:
file --mime-encoding encoded.txt




Das nicht, ich dachte um einen String geht es nicht sondern um die Kodierung der Webseite.
Egal, utf8-decode() macht das Problem hinfällig, besser wäre die eigene Seite auf utf-8 umstellen.

Ja, das ganze war auch etwas OT, da der Vorschlag mit iconv kam und ich nachgefragt hatte, da mir eine Erkennungsfunktion in iconv unbekannt war.

Gruß
/martin
 
Das nicht, ich dachte um einen String geht es nicht sondern um die Kodierung der Webseite.
Egal, utf8-decode() macht das Problem hinfällig, besser wäre die eigene Seite auf utf-8 umstellen.

Mit iconv kann man auch Strings umwandeln. Das geht auch soweit, dass man "beliebige" Zeichensätze in utf8 umwandeln kann:

PHP:
$irgendeinstring_utf8 = iconv(mb_detect_encoding($irgendeinstring), 'utf-8', $irgendeinstring);

utf8_encode() würde ich hierfür in keinem Fall verwenden, da es einen ISO-8859-1-Zeichensatz erwartet, siehe Manual:
PHP: utf8_encode - Manual
Das selbe gilt auch für utf8_decode() - damit wird man nicht glücklich:
http://php.net/manual/en/function.utf8-decode.php
 
Soweit waren wir auch schon ... es geht halt mit mb_detect_encoding ... aber nicht mit iconv Boardmitteln, es sei denn, man probiert jede input_encoding Variante aus ...
 
Mit dem iso-8859-1 hast du natürlich recht, daran habe ich gernicht gedacht.
Da kann man mal sehen, was das Einbinden von externen Daten für ein Dilemma werden kann :mrgreen:

Umwandeln war nicht die Frage sondern das erkennen des Zeichensatzes eines Strings (Textes).
Das wäre mal eine Coole Sache einen Wrapper zu basteln, der Zeichensätze eines Strings erkennen kann.
 
Das wäre mal eine Coole Sache einen Wrapper zu basteln, der Zeichensätze eines Strings erkennen kann.

Der Code von Threadi funktioniert dahingehend ja ... mb_detect_encoding erkennt den Zeichensatz und mit iconv konvertierst Du ihn dann on the fly in den gewünschten Zielzeichensatz.

Gruß
/martin
 
Zurück
Oben