php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 06.01.2010, 16:43  
Erfahrener Benutzer
 
Registriert seit: 09.11.2008
Beiträge: 200
smilla befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] Darstellung HTML-Entities mit htmlentities unter UTF-8

Hallo,

meine Seite läuft komplett unter UTF-8. Also header sendet UTF-8, im Meta ist es auch drinnen und mit Mysql läut es auch, alles soweit bestens, da ist auch nicht das Problem. Einzige sache ist, das meine Dateien nicht UTF-8 kodiert sind, aber dies macht keine Probleme, da ich sämtliche Sonderzeichen als html entitiy schreibe.

In der Datenbank stehen UTF-8 kodierte Strings, die ich normal anzeigen lasse, dies klappt ganz gut.

Nun möchte ich an einige Stellen Fehlermeldungen anzeigen lassen. Ich übergebe einen String an eine Funktion, der diese dann mit htmlentities anzeigt. Mit den Fehlermeldungen aus der Datenbank klappt dies wunderbar. Wenn ich von Hand aber selbst Fehlermeldungen im html Quelltext habe, beinhaltet diese html entities (für Sonderzeichen) und genau diese stellte htmlentities nicht richtig dar.

PHP-Code:
echo htmlentities("Der Römer ist Groß"ENT_QUOTES"UTF-8");
echo 
"<br />";
echo 
htmlentities(html_entity_decode("Der R&ouml;mer ist Gro&szlig;"ENT_QUOTES"UTF-8"), ENT_QUOTES"UTF-8"); 
Während die erste Zeile die Daten nicht korrekt anzeigt, zeigt die zweite Zeile die Daten korrekt an.

Kann es Probleme geben, wenn ich immer ein html_entity_decode da mit einbaue.

Wie kann man das besser lösen? Oder muss ich meine Dateien auch utf-8 kodiert abspeichern?

smila
smilla ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 06.01.2010, 16:56  
Benutzer
 
Registriert seit: 16.09.2009
Beiträge: 55
PHP-Kenntnisse:
Fortgeschritten
Sascha Ahlers befindet sich auf einem aufstrebenden Ast
Standard

Wenn die Daten, die zur Datenbank gehen UTF-8 sind, musst Du sie natürlich auch in UTF-8 abspeichern.
Sascha Ahlers ist offline  
Alt 06.01.2010, 17:09  
Erfahrener Benutzer
 
Registriert seit: 09.11.2008
Beiträge: 200
smilla befindet sich auf einem aufstrebenden Ast
Standard

Mit den Daten aus der Datenbank komme geht es wunderbar, diese Datensätze enthalten auch keine html Entities. Es geht nur nicht mit den Daten, die ich manuell in den Quellcode schreibe, welche Entities behalten. Vermutlich besteht das gleiche Problem, auch wenn kein UTF 8 im Spiel ist.
smilla ist offline  
Alt 06.01.2010, 17:11  
Moderator
 
Benutzerbild von Asipak
 
Registriert seit: 18.07.2005
Beiträge: 4.072
Asipak sorgt für eine eindrucksvolle AtmosphäreAsipak sorgt für eine eindrucksvolle Atmosphäre
Standard

Wieso willst du überhaupt htmlentities auf von dir in den Quelltext geschriebenen Text anwenden?
Asipak ist offline  
Alt 06.01.2010, 17:12  
Supermoderator HD
 
Benutzerbild von Manko10
 
Registriert seit: 16.03.2008
Beiträge: 8.709
PHP-Kenntnisse:
Fortgeschritten
Manko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende Zukunft
Standard

Wozu nutzt du bei UTF-8 htmlentities(). Warum nicht einfach htmlspecialchars()? Umlaute in UTF-8 zu maskieren ist Schwachfug.

Beitrag editiert:
[…] Zu langsam
__________________
Refining Linux Advent Calendar series “24 Outstanding ZSH Gems
Manko10 ist offline  
Alt 06.01.2010, 20:49  
Erfahrener Benutzer
 
Registriert seit: 09.11.2008
Beiträge: 200
smilla befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Wozu nutzt du bei UTF-8 htmlentities(). Warum nicht einfach htmlspecialchars()? Umlaute in UTF-8 zu maskieren ist Schwachfug.
Ja eigentlich völlig recht, wenn ich htmlspecialchars nehme, erzielt es eigentlich den Zweck den ich bei der Anzeige möchte. Das sollte mein Problem lösen.

Wenn ich dann meine Dokumente UTF-8 abgespeichert kriege, sollte alles bestens sein, aber dies soll nicht bestand dieser Disskussion sein.

Besten Dank an alle.
smilla ist offline  
Alt 07.06.2010, 08:49  
Neuer Benutzer
 
Registriert seit: 07.06.2010
Beiträge: 21
PHP-Kenntnisse:
Anfänger
Abweichler ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Zitat von Manko10 Beitrag anzeigen
...Umlaute in UTF-8 zu maskieren ist Schwachfug.
Hallo zusammen!
Ich beschäftige mich gerade mit derselben Problematik. Deshalb würde mich natürlich brennend interessieren warum es keinen Sinn macht Umlaute in UTF-8 zu maskieren.

Für eure Hilfe und Erläuterungen recht herzlichen Dank!
=)
Abweichler ist offline  
Alt 07.06.2010, 12:59  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von Abweichler Beitrag anzeigen
Deshalb würde mich natürlich brennend interessieren warum es keinen Sinn macht Umlaute in UTF-8 zu maskieren.
Warum sollte es denn welchen „machen“?
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline  
Alt 07.06.2010, 13:42  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.990
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

Zitat:
aber dies soll nicht bestand dieser Disskussion sein.
Wieso nicht, wenn es das Problem löst und auch noch den state of the art darstellt?
Zitat:
Deshalb würde mich natürlich brennend interessieren warum es keinen Sinn macht Umlaute in UTF-8 zu maskieren.
Maskierung dient dazu Zeichen eines fremden Zeichensatzes darstellen zu können. Ein erweiterter Zeichensatz fasst 255 Zeichen, was in Deutschland bspw. nötige Umlaute wie üöä beinhaltet, in Schweden oder Griechenland eben Zeichen Ihres Sprachraums. Unicode (UTF-8 etc.) erweitert die verfügbare Zeichenmenge eines Zeichensatzes radikal, so dass man vereinfach sagen kann: Unicode enthält alle Zeichen der Welt.

Unicode
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist gerade online  
Alt 07.06.2010, 21:48  
Neuer Benutzer
 
Registriert seit: 07.06.2010
Beiträge: 21
PHP-Kenntnisse:
Anfänger
Abweichler ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Zitat von ChrisB Beitrag anzeigen
Warum sollte es denn welchen „machen“?
Nun, bisher dachte ich, um Inhalt genauso auszugeben wie er ursprünglich erstellt wurde. Ich denke da gerade an die Probleme mit den Umlauten die man als Anfänger gerne hat.
Zitat:
Zitat von nikosch Beitrag anzeigen
... Unicode (UTF-8 etc.) erweitert die verfügbare Zeichenmenge eines Zeichensatzes radikal, so dass man vereinfach sagen kann: Unicode enthält alle Zeichen der Welt.
Vielen Dank für die Ausführung inkl. Link. Wenn ich das also richtig verstanden habe, brauche ich vor einer Speicherung in die DB Umlaute im Text nicht durch ASCII-Code zu ersetzen, solange DB, Datenübermittlung (Script<->DB) und Ausgabe mit UTF-8 formatiert sind?

Oder wie ist das gemeint mit dem state of the art?
Abweichler 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
html formular mit einer php mail funktion basti-erfurt Scriptbörse 3 07.12.2008 15:21
html2pdf - reines html als parameter übergeben helpless PHP Tipps 2008 2 09.11.2008 13:31
[Erledigt] HTML Mail mit Lücken mitten in den Worten, wie kommt das? DeeFour PHP-Fortgeschrittene 2 29.05.2008 15:47
css: HTML unterelement fehlerhafte darstellung obi HTML, Usability und Barrierefreiheit 2 28.05.2007 17:33
Variable und komplette HTML Datei chrisonline PHP Tipps 2007 3 24.05.2007 15:30
[Erledigt] Problem mit Sonderzeichen PHP -&gt; MySQL -&gt; HTML PHP Tipps 2007 18 07.12.2005 15:23
&amp;amp;amp;lt;if&amp;amp;amp;gt; &amp;amp;amp;lt;/if&amp;amp;amp;gt; in einer HTML Datei fuer Templ PHP-Fortgeschrittene 6 03.11.2005 12:05
Kontaktformular, welches auf neue html Seite führt PHP Tipps 2005-2 4 20.07.2005 11:21
HTML Tabellenzeile in Tabelle einfügen? Datenbanken 2 28.01.2005 00:28
Darstellung eines mehrzeiligen Datenbankwertes in HTML PHP Tipps 2004-2 1 16.12.2004 13:14
IMAP: Bild(er) in HTML Part richtig darstellen PHP-Fortgeschrittene 1 07.10.2004 12:21
{$varname.optelement} mit preg_match aus HTML extrahieren PHP Tipps 2004 0 11.09.2004 04:13
Unterschied HTML und PHP PHP Tipps 2004 4 28.08.2004 19:02
Validitor (HTML 4.01) = Schwachsinn? Filewalker Off-Topic Diskussionen 19 03.08.2004 15:27
[Erledigt] PDF aus HTML erzeugen ? PHP-Fortgeschrittene 2 05.06.2004 02:10

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
htmlentities utf8, htmlentities utf-8, http://www.php.de/php-einsteiger/63056-erledigt-darstellung-html-entities-mit-htmlentities-unter-utf-8-a.html, htmlentities utf-8 problem, htmlentities uft8, utf-8 entities, php htmlentities funktioniert nicht, utf8 entities, html2pdf html darstellen, php entities, mysql html entities, utf-8 html code?, php htmlentities utf8, htmlentities utf, entities utf-8, entities php, php htmlentities utf-8, html_entities utf8, echo htmlentities, html utf-8 darstellen

Alle Zeitangaben in WEZ +2. Es ist jetzt 20:54 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