"Christmas - the time to fix the computers of your loved ones" « Lord Wyrm

iso-8859-1 vs. UTF-8 umlaut-problem

TOM 30.09.2007 - 00:24 1852 13
Posts

TOM

Super Moderator
Oldschool OC.at'ler
Avatar
Registered: Nov 2000
Location: Vienna
Posts: 7369
Folgendes Problem

Eine Website läuft auf iso-8859-1 und eine auf UTF-8. Nun will ich in der UTF-8 Website ein php-script von der iso-8859-1 includen => Problem ist, dass die Umlaute nicht dargestellt werden können.

Hab mich jetzt schon mit den .htaccess dateien rumgespielt aber nur erreicht, dass dann die komplette website (von den umlauten her) nicht mehr funktioniert, dafür das include... aber nie alles

Also wie include ich ein Script mit einem anderen charset und schaffe es gleichzeitig, die Umlaute zu "retten"?

tia

TOM

fatmike182

Agnotologe
Registered: Oct 2005
Location: VIE
Posts: 4223
blöde Frage jetzt, aber warum nicht als &.umla/u/o; übersetzen, oder gehts grad um das? (Punkt wegdenken)
Bearbeitet von fatmike182 am 30.09.2007, 00:43

TOM

Super Moderator
Oldschool OC.at'ler
Avatar
Registered: Nov 2000
Location: Vienna
Posts: 7369
das php-script welches ich includen will, generiert den code irgendwo aus den tiefen des phpbb forums

wenn es hilft, kann ich das script ja posten... aber ich glaub nicht, dass man es einfach umschreiben kann, damit es UTF-8 ausgibt (ist anscheinend eine phpbb variabel)

edit: Könnte das meine Lösung sein? Klingt irgendwie danach, nur werd ich nicht schlau daraus, wie ich es jetzt einbauen muss.

fatmike182

Agnotologe
Registered: Oct 2005
Location: VIE
Posts: 4223
am Variable-finden kommst du anscheinend nicht vorbei...
Schalte alles auf get, und verfolg alles was in der Adressleiste übergeben wird.

TOM

Super Moderator
Oldschool OC.at'ler
Avatar
Registered: Nov 2000
Location: Vienna
Posts: 7369
der output des iso-8859-1 files lautet

Code: PHP
echo '<tr><td valign="top" nowrap="nowrap" align="center">'. $topic_type .'<a target="_parent" title="Von '. $last_author .' mit '. $replies .' Antwort(en)" href="'. $topic_url .'">'. $topic_title .'</a></td></tr> 

kann ich jetzt mit diesem iconv-php befehl die $topic_title variable in utf-8 konvertieren? dann wär das problem gelöst

edit: nochwas zu der thematik, aber ich werd auch nicht ganz schlau draus, wie das jetzt zu implementieren ist

fatmike182

Agnotologe
Registered: Oct 2005
Location: VIE
Posts: 4223
schaut gut aus.
bzw so hätt ichs gemeint:
http://www.phpfriend.de/forum/ftopic62686.html
http://www.flashforum.de/forum/arch...p/t-101739.html
(glaub ich)

hm. also wenns bei dir nur Umlaute und sonst keine Sonderzeichen sind, würd ich das mit dem htmlentities usw. machen, oder versuch der Einfachheit halber die Stringreplace-methode.
Ich nehm an, dass du eh keine Dateinamen oder so ändern musst, oder? (wie bei deinem Link eben, weil dann evtl der Strichpunkt stört)
Bearbeitet von fatmike182 am 30.09.2007, 01:51

TOM

Super Moderator
Oldschool OC.at'ler
Avatar
Registered: Nov 2000
Location: Vienna
Posts: 7369
in dem topic titel kann alles vorkommen... umlaute, scharfes ß, etc.

ich hab noch immer keinen plan, wie ich diese konvertierung einbauen soll...

das ist die variable:

Code: PHP
$topic_title = ( strlen($line[$i]['topic_title']) < $topic_length ) ? $line[$i]['topic_title'] : substr(stripslashes($line[$i]['topic_title']), 0, $topic_length) .'...';

oben steht der output.... was tun?

fatmike182

Agnotologe
Registered: Oct 2005
Location: VIE
Posts: 4223
also iirc hab ich das schon beim input gemacht, also wenn du Sachen in die DB speicherst passiert das bereits in der umlautfreien Form. (btw. mit Sonderzeichen hab ich gemeint, dass sich keiner ein Copyright oder so erwartet, das könnte evtl dann bissal ausarten)

bin zu zach zum Nachdenken, hoffe aber dass dir der Link evtl weiterhilft. Da wird das mit Funktionen umgesetzt, aber geht ums gleiche Probelm. http://www.wehavemorefun.de/fritzbox/index.php/Mac_OS_X

TOM

Super Moderator
Oldschool OC.at'ler
Avatar
Registered: Nov 2000
Location: Vienna
Posts: 7369
HA!

hab die bitch endlich an den eiern... eine zeile und es funkt pipifein :]

Code: PHP
$topic_title = iconv("ISO-8859-1","UTF-8","$topic_title");

fatmike182

Agnotologe
Registered: Oct 2005
Location: VIE
Posts: 4223
oag...
ist das standardmäßig dabei oder ist das was exotisches? (hast dus erst installieren müssen?)

btw was tut das jetzt?
das Textfeld/input mitn titel wird umlautfrei gemacht und in die DB gespeichert?

TOM

Super Moderator
Oldschool OC.at'ler
Avatar
Registered: Nov 2000
Location: Vienna
Posts: 7369
standard (hab mir nur so schwer getan, da alle gleich die ganze datenbank konvertiert haben und nicht nur eine variable)

die variabel wird einfach (in einem php-script) anstatt iso-8859-1 als UTF-8 ausgegeben.... dieses script include ich dann von einer utf-8 kodierten website und die umlaute werden korrekt dargestellt

hatte es vorher per iframe gelöst und dementsprechend keine probleme... da ich die site aber jetzt von frames befreit habe (eben auch SEO), hatte ich ein kleines charset problem bzgl. umlaute

fatmike182

Agnotologe
Registered: Oct 2005
Location: VIE
Posts: 4223
sag, würde utf8_encode/decode was anderes machen? Oder ist das die beschnittene iconv?

Aber freut mich, dasst den iconv-Weg gefunden hast, hab das immer umständlicher gemacht

TOM

Super Moderator
Oldschool OC.at'ler
Avatar
Registered: Nov 2000
Location: Vienna
Posts: 7369
was ich gelesen habe, macht es das selbe

COLOSSUS

Administrator
GNUltra
Avatar
Registered: Dec 2000
Location: ~
Posts: 12070
Die meisten charset conversion utils greifen auf iconv zurueck; iconv ist Bestandteil der glibc und auch als standalone-CLI-Applikation auf den meisten GNU-Systemen verfuegbar.

Nichtuniverselle Charsets sind die Hoelle, gell? :D
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz