php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 04-09-2006, 14:25
Zitrus
 Newbie
Links : Onlinestatus : Zitrus ist offline
Registriert seit: Sep 2006
Beiträge: 4
Zitrus ist zur Zeit noch ein unbeschriebenes Blatt
Standard Problem mit Umlauten

Hallo,

Ich benutze MYSQL 5.0 und PHP 4.4.4

Mein Problem ist folgendes:

Wenn ich ein in meine Datenbank soetwas wie " Übung macht den Meister" abspeicher und per PHP lade, werden die Umlaute nur als "?" dargestellt. In dem Fall z.B. "?bung macht den Meister".

Der Text in der Datenbank ist richtig. Wenn ich normal ein Umlaut im PHP schreibe wird es auch richtig angezeigt!

Ich gebe den text mit echo wieder, zeile[5] ist der geladene Text aus MySQL:

<?php
$_dertext =$zeile[5];
echo " <p style='word-spacing: 0; line-height: 150%; text-indent: 0; margin: 0' align='left'><b><font color='#000080' face='Verdana' size='3'>Übung</font></b><font color='#000080' size='2' face='Verdana'><br>
$_dertext
</font></p>";
?>

Das komische ist nur, "Übung" wird richtig angezeigt, doch Umlaute in $_dertext nicht....

Mir ist bewusst das ich auch $_dertext=htmlentities($zeile[5]);
benutzen kann, doch das möchte ich nicht, weil ich im Text auch sachen dick schreiben will("<b>Übung</b> macht den Meister") und solche Spielereien würden dann ja auch nicht funktionieren.

Wenn mir jemand Rat geben kann wäre ich äußerst Dankbar!!!!

Vielen dank das du dir Zeit genommen hast über mein Problem nachzudenken.

MfG Zit.
Mit Zitat antworten
  #2 (permalink)  
Alt 04-09-2006, 14:37
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.721
Kropff befindet sich auf einem aufstrebenden Ast
Standard

was für einen zeichensatz hat die tabelle, welcher die php-seite?

gruß
peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
Mit Zitat antworten
  #3 (permalink)  
Alt 04-09-2006, 14:59
Zitrus
 Newbie
Links : Onlinestatus : Zitrus ist offline
Registriert seit: Sep 2006
Beiträge: 4
Zitrus ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ich benutze den Default Zeichensatz. Der heißt glaub ich irgendwie Iso- und dann eine Nummer, wie er genau heißt weis ich leider nicht.

Das Problem ist halt, ich brauche einen Zeichensatz der ä,ü und ö richtig darstellt und das die Html Befehle nicht in einen String Umwandelt(<b>....), so dass ich diese noch benutzen kann.
Mit Zitat antworten
  #4 (permalink)  
Alt 04-09-2006, 15:19
gen
 Newbie
Links : Onlinestatus : gen ist offline
Registriert seit: Mar 2006
Beiträge: 36
gen ist zur Zeit noch ein unbeschriebenes Blatt
gen eine Nachricht über ICQ schicken
Standard

Hi,

wenn ich dich richtig verstanden habe, werden die Umlaute bei der Ausgabe in deinem Browser nicht korrekt dargestellt. Das hat dann nichts mit dem Zeichensatz der DB zu tun sondern dem eingestellten Zeichensatz deines Content-Types (in der HTML Ausgabe).

Ist dieser auf UTF-8 gestellt, werden Umlaute als ? dargestellt. Bastel dir doch ne Funktion, die die Umlaute durch entieties ersetzt. Und du dann eben "&amp;Uuml;bung macht den Meister" in der Datenbank stehen hast.

Grüße,
gen
Mit Zitat antworten
  #5 (permalink)  
Alt 04-09-2006, 15:42
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Original geschrieben von gen
Ist dieser auf UTF-8 gestellt, werden Umlaute als ? dargestellt.
Warum sollten sie?
Auch in UTF-8 kann man problemlos Umlaute darstellen.
Zitat:
Bastel dir doch ne Funktion, die die Umlaute durch entieties ersetzt. Und du dann eben "&amp;Uuml;bung macht den Meister" in der Datenbank stehen hast.
Nein, das wäre grßer Unfug, vermutlich nahe am größtmöglichen.


Schlicht und einfach eine eindeutige Entscheidung für eine Kodierung treffen - und diese dann überall und konsequent anwenden.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #6 (permalink)  
Alt 04-09-2006, 15:50
Zitrus
 Newbie
Links : Onlinestatus : Zitrus ist offline
Registriert seit: Sep 2006
Beiträge: 4
Zitrus ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von wahsaga
Schlicht und einfach eine eindeutige Entscheidung für eine Kodierung treffen - und diese dann überall und konsequent anwenden.
Text: " <b> Übung </b> macht den Meister"

Welche Kodierung wandelt den z.B. diesen Text so um, dass die Umlaute ersetzt werden und den HTML Code so lassen?

Dieses Forum funktioniert doch anscheinen auch so, das ich meinen Text mit HTML CODE editieren kann, und trozdem Umlaute benutzen kann.

Was mir bisher auch nicht klar ist, wieso wird das "ä", dass ich aus der Datenbank hole zum "?", und das "ä", dass ich einfach in den Quellcode geschrieben hab nicht(es bleibt also ein ä)?
Mit Zitat antworten
  #7 (permalink)  
Alt 04-09-2006, 16:06
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Original geschrieben von Zitrus
Text: " <b> Übung </b> macht den Meister"

Welche Kodierung wandelt den z.B. diesen Text so um, dass die Umlaute ersetzt werden und den HTML Code so lassen?
Vollkommen falsche Fragestellung ...

Zeichenkodierungen wandeln nichts "um", sie bilden nur etwas ab.

Zitat:
Dieses Forum funktioniert doch anscheinen auch so, das ich meinen Text mit HTML CODE editieren kann, und trozdem Umlaute benutzen kann.
Ja natürlich - du klingst immer noch so, als ob du das für etwas besonderes, und nicht für das normalste der Welt hältst ...?
Zitat:
Was mir bisher auch nicht klar ist, wieso wird das "ä", dass ich aus der Datenbank hole zum "?", und das "ä", dass ich einfach in den Quellcode geschrieben hab nicht(es bleibt also ein ä)?
Weil du nicht an allen Stellen die gleiche Zeichenkodierung verwendet hast, sondern lustig zwischen verschiedenen hin- und herspringst.


Und so, wie beispielsweise die Wörter "alter" oder "kind" im Englischen etwas anderes bedeuten als im Deutschen, so bedeuten auch das oder die Bytes, die in der einen Zeichenkodierung ein 'ä' darstellen, in einer anderen womöglich etwas anderes ...


Mal ein paar Threads aus dem SELFFORUM, die sich auf ähnliche Probleme beziehen (teilweise auf UTF-8 bezogen, aber es geht ja um das prinzipielle):
http://forum.de.selfhtml.org/archiv/...24629/#m803336
http://forum.de.selfhtml.org/archiv/...29189/#m835211
http://forum.de.selfhtml.org/archiv/...27940/#m825991

Das muss nicht unbedingt gleich dein Problem lösen - aber es vermittelt ein Grundverständnis dafür, was überhaupt zu beachten ist, und an welchen Stellen überall die Zeichenkodierung eine Rolle spielen kann.
Und dieses Grundverständnis ist absolut essentiell, um sich so einem Problem widmen zu können.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #8 (permalink)  
Alt 04-09-2006, 16:40
Zitrus
 Newbie
Links : Onlinestatus : Zitrus ist offline
Registriert seit: Sep 2006
Beiträge: 4
Zitrus ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Vielen Dank für deine Links

Vorallen war dieser hier sehr interessant, da er exakt mein Problem schildert.

Leider hab ich die Antwort nicht verstanden. Es wäre erfreulich wenn jemand diese mir erklären könnte.

Danke,

Geändert von Zitrus (04-09-2006 um 16:42 Uhr)
Mit Zitat antworten
  #9 (permalink)  
Alt 04-09-2006, 18:54
gen
 Newbie
Links : Onlinestatus : gen ist offline
Registriert seit: Mar 2006
Beiträge: 36
gen ist zur Zeit noch ein unbeschriebenes Blatt
gen eine Nachricht über ICQ schicken
Standard

Zitat:
Original geschrieben von wahsaga
Warum sollten sie?
Auch in UTF-8 kann man problemlos Umlaute darstellen.
Ich spreche hier aus der Erfahrung, dass in meiner MySQL DB UTF-8 eingestellt ist, ich in der Ausgabe Doctype XHTML 1.0 Transitional Charset UTF-8. Wenn ich der Datenbank Umlaute stehen hab und diese z.B. in ein Newsscript lade, werden sie als "?" dargestellt.
Deswegen muss ich entweder vor der Eingabe in die Datenbank oder vor der Ausgabe im HTML die Sonderzeichen in die jeweiligen Entieties umwandeln.

Zitat:
Original geschrieben von wahsaga

Nein, das wäre grßer Unfug, vermutlich nahe am größtmöglichen.
Wie gesagt bei mir führt der "Unfug" zur Lösung, aber elegant ist es.

@Zitrus: Ich versteh dein Problem leider nicht wirklich. Stelle sowohl in der MySQL DB, <i>als auch</i> in der Tabelle, im Tabellenfeld <i>und</i> in der HTML Ausgabe den selben Zeichensatz ein. Dann sollte es funktionieren normalerweise.

Grüße,
gen

Geändert von gen (04-09-2006 um 18:58 Uhr)
Mit Zitat antworten
  #10 (permalink)  
Alt 04-09-2006, 19:48
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Original geschrieben von gen
Ich spreche hier aus der Erfahrung, dass in meiner MySQL DB UTF-8 eingestellt ist, ich in der Ausgabe Doctype XHTML 1.0 Transitional Charset UTF-8. Wenn ich der Datenbank Umlaute stehen hab und diese z.B. in ein Newsscript lade, werden sie als "?" dargestellt.
Dann wird dein Newscript wohl nicht als UTF-8 ausgeliefert.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #11 (permalink)  
Alt 04-09-2006, 20:02
ghostgambler
 Master
Links : Onlinestatus : ghostgambler ist offline
Registriert seit: Jul 2004
Ort: DE - NRW
Beiträge: 4.620
ghostgambler ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von gen
Wie gesagt bei mir führt der "Unfug" zur Lösung, aber elegant ist es.
nein, vollkommen unelegant ... im Endeffekt braucht man Sonderzeichen gar nicht zu Entities verwandeln, einzig bei speziellen Zeichen (<> etc.) lohnt es sich. Wenn du also in deinem Code schon HTML hast, kannst du den, bei korrekter Zeichenkodierung, so ausgeben wie er in der DB steht
Mit Zitat antworten
  #12 (permalink)  
Alt 04-09-2006, 20:16
gen
 Newbie
Links : Onlinestatus : gen ist offline
Registriert seit: Mar 2006
Beiträge: 36
gen ist zur Zeit noch ein unbeschriebenes Blatt
gen eine Nachricht über ICQ schicken
Standard

Zitat:
Original geschrieben von ghostgambler
nein, vollkommen unelegant ... im Endeffekt braucht man Sonderzeichen gar nicht zu Entities verwandeln, einzig bei speziellen Zeichen (<> etc.) lohnt es sich. Wenn du also in deinem Code schon HTML hast, kannst du den, bei korrekter Zeichenkodierung, so ausgeben wie er in der DB steht
Haha tut mir leid ich wollte unelegant schreiben, mir is klar dass da irgendwas nicht richtig funktioniert und das nur eine Notlösung ist. Wenn überall der selbe Charset angegeben wurde muss es ja klappen.

Grüße,
gen

PS: Sorry für Missverständnis ^^
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 21:27 Uhr.