php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2007

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 03.07.2007, 20:51  
Erfahrener Benutzer
 
Registriert seit: 02.07.2004
Beiträge: 338
spoi
Standard schriftsatz

Hallo,

ich möchte gerne auf meiner Homepage diverse Textpassagen aus anderen Websites auslesen. Mein Problem ist nun, dass meine Homepage UTF-8 kodiert ist.
Ist nun die Textpassage jedoch ISO-blub dann werden die Umlaute alle nicht richtig dargestellt. Jetzt gibt es ja die schöne Funktion utf8_encode(). Wenn ich den Text damit behandle werden auch alle ehemaligen iso Umlaute richtig dargestellt, dafür sind alle UTF-8 Umlaute jetzt futsch.

Gibt es hier eine inteligentere Funktion oder wie kann ich überprüfen ob ein Text bereits UFT-8 ist?
__________________
MfG
spoi
spoi ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 03.07.2007, 20:54  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Verstehe ich nicht, deine Homepage ist UTF-8 und der geklaute Inhalt ISO? Warum sollte es dann Umlaute zerhauen, wenn du nur den ISO-Inhalt mit der Funktion anfasst?

Aber wie immer ist ein Codebeispiel hilfreicher als man je ahnen könnte..
Zergling-new ist offline  
Alt 03.07.2007, 20:58  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Soweit ich weiß nicht. Du kannst ja den Zeichensatz Header der Website parsen. Aber auch den gibts nicht immer. Ohnehin stellt sich wie immer die Frage, wozu ständig jemand fremde Websites auslesen möchte.
nikosch ist gerade online  
Alt 03.07.2007, 21:02  
Erfahrener Benutzer
 
Registriert seit: 02.07.2004
Beiträge: 338
spoi
Standard

Zunächst möchte ich mich von dem geklaut distanzieren und euch gerne verraten warum jemand Webseiten auslesen möchte. Und zwar handelt es sich um ein mini Suchmaschienenprojekt (aus Fun) basiert auf http://www.sphider.eu


Also ich habe sagen wir mal Zwei Variablen:

PHP-Code:
$utf 'Hier stehen Umlaute drinn, die von einer UTF-8 kodierten Webseite stammen';
$iso 'Hier stehen Umlaute drinn, die von einer ISO kodierten Webseite stammen';

//Jetzt geben wir das ganze einmal aus
echo $utf $iso;
// und hui alle Umlaute aus $utf sind richtig und aus $iso sind falsch
echo utf8_encode($utf) . utf8_encode($iso);
// und siehe da nun sind alle &utf Umlaute falsch und alle $iso Umlaute richtig 
__________________
MfG
spoi
spoi ist offline  
Alt 03.07.2007, 21:04  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Wie wärs mit einem lässigen
Code:
echo $utf . utf8_encode($iso)
?
Zergling-new ist offline  
Alt 03.07.2007, 21:06  
Erfahrener Benutzer
 
Registriert seit: 02.07.2004
Beiträge: 338
spoi
Standard

Hey coole idee, nur leider tut das nicht, da mein codeschnipsel nur zur Verdeutlichung dienen sollte.

In wirklichkeit weis ich nicht, welcher Zeichensatz in der Variablen steckt und eben das möchte ich raus bekommen. Oder alternativ den Zeichensatz einer externen Seite ermitteln.
__________________
MfG
spoi
spoi ist offline  
Alt 03.07.2007, 21:11  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Warum stellst du die Frage dann nicht so wie sich das Problem darstellt: Wie konvertiere ich einen Inhalt unbekannten Zeichensatzes in UTF-8?

Naja entweder Header oder DOM-Struktur und entsprechenden <meta> Tag auslesen.
Es gibt auch noch
http://de3.php.net/manual/de/ref.iconv.php
aber die hab ich noch nie wirklich verwendet, ohne zu wissen welche Zeichensätze vorliegen.
Zergling-new ist offline  
Alt 03.07.2007, 21:22  
Erfahrener Benutzer
 
Registriert seit: 02.07.2004
Beiträge: 338
spoi
Standard

hm bringt mich bei einem unbekannten Zeichensatz nun auch nicht viel weiter aber danke für den Tip
__________________
MfG
spoi
spoi ist offline  
Alt 04.07.2007, 00:43  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Hast du denn mal versucht den Header oder den <meta> Tag auszulesen? Das ist zwar kein Lösungsansatz für das allgemeine Problem "Wie erkenne ich den Zeichensatz?", aber zumindest für dein spezielles dürfte es doch recht vielversprechend sein.

Ich als Zeichensatz-Laie stelle es mir zumindest schwierig vor, den Zeichensatz einer Zeichenkette festzustellen, ohne Unicode-BOMs oder mitgesendete Meta-Daten.
Man kann vielleicht einige Zeichensätze ausschließen, weil vielleicht 11 Bytes vorliegen, aber Zeichensatz XY pro Zeichen 4 Bytes benötigt.
Vielleicht ist es aber auch ganz einfach mit einer Funktion die ich noch nicht kenne und die gleich jemand postet.
Wenn du mehr weißt, informier uns doch bitte hier.
Zergling-new ist offline  
Alt 04.07.2007, 00:54  
Erfahrener Benutzer
 
Registriert seit: 02.07.2004
Beiträge: 338
spoi
Standard

Ja meta-Tag ist halt relativ unsicher. Wisst ihr, wie arg ich dem Dateiheader den der webserver mit sendet trauen kann?

Es gibt ein Linux Konsolenprogramm enca, dass kann anscheinend eine Datei belibigen Zeichensatzes in einen anderen Zeichensatz umwandeln Leider nur eine Datei...
__________________
MfG
spoi
spoi ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Russischer Schriftsatz wird zu Fragezeichen ichselbst Datenbanken 2 27.04.2006 15:01
Schriftsatz für Grafikerstellung festlegen PHP Tipps 2005-2 9 12.06.2005 14:07
[Erledigt] korrekter Schriftsatz deutsch? Datenbanken 0 12.06.2005 13:56

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
sphider umlaute, wie erkenne ich den schriftsatz in file

Alle Zeitangaben in WEZ +2. Es ist jetzt 16:38 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.