zurück zur Startseite
  


Zurück XHTMLforum > (X)HTML und CSS > (X)HTML
Seite neu laden utf8 Fragen und Probleme

Antwort
 
LinkBack Themen-Optionen Ansicht
  #1 (permalink)  
Alt 25.04.2005, 14:48
papa
neuer user
Thread-Ersteller
 
Registriert seit: 06.04.2005
Ort: Berlin
Beiträge: 27
lewian befindet sich auf einem aufstrebenden Ast
Standard utf8 Fragen und Probleme

Ich habe ein paar Fragen zur Verwendung von UTF8.
In diesem Thread:
http://www.xhtmlforum.de/viewtopic.p...r=asc&start=30
kommt ja schon viel Licht ins dunkle, leider sind aber für mich immer noch ein paar Ecken schwarz.

Meine Fragen:
1.
Man braucht keine Maskierung mehr bei der Verwendung von UTF8. Denke das kann man so stehen lassen, aber hier wurde geschrieben:
http://www.xhtmlforum.de/viewtopic.php?p=12654#12654
dass man "&" doch maskieren muss, damits keine Fehlermeldungen hagelt.
Warum das bei dem Zeichen? Nur in Links?

2.
Ich verwende die ZendDeveloperEngine 4.0 Professional und speichere meine Dokumente alle standartmäßig in UTF8 und gebe den UTF8-Header in jeder PHP-Datei mit. Wenn ich jetzt Text aus eine DB bekomme, die einen anderen Zeichensatz verwendet, dann muss ich diese Daten erst mittels utf8_encode() umwandeln - lieg ich da richtig?
Was ist mit Ausgaben, die ich in einem Template halte? Müssen die dann auch noch in UTF8 extra umgewandelt werden? Eigentlich nicht, da die Datei ja als UTF8 gespeichert ist oder?
Also muss ich doch eigentlich nur Daten umwandeln, die aus einer anderen Quelle kommen, als das abgespeicherte Dokument (gespeichert als UF.

3.
Was ist mit Daten aus Cookies und Sessions?
Müssen die bei der nächsten Verwendung erst noch umgewandelt werden?

4.
Ich verwende unter anderen Tidy vom Firefox. Errors werden 0 angezeigt, aber 22 warnings. Diese Warnings zeigen genau auf <a> Zeilen wo Umlaute im URL drin stehen. Ein Beispiel:
line 79 column 11 - Warning: <a> escaping malformed URI reference
und der URL lautet:
<a class="normal_blue" style="color: #000000;" href="http://www.eurogastro.com/test/show_items.php?item_nr=3144001&menu_show=Kochgerät e&sort_show=Friteusen&menu_id=1000&sort_id=1025&ak tion=true" title="Friteuse elektro">

Diese Fehler bekomm ich nicht weg, kann sie mir auch nicht erklären. Die Daten für den URL kommen aus der DB und werden vorher auch mit utf_encode() behandelt. Lasse ich diesen Umwandlungsschritt weg, sind die Fehler auch immer noch da. Keine Ahnung wieso!?

Wenn ich Links (<a href>) deren Inhalt aus einer DB kommt, die einen anderen Zeichensatz verwendet als UTF8, unkonvertiert ausgebe, dann sagt mir Tidy 0 errors und 0 warnings.
w3c meckert allerdings genau an diesen Zeilen herum, dass nicht-valide UTF8 Zeichen in dieser Zeile enthalten wären.

Konvertiere ich die Daten aus der DB mittels utf8_encode(), dann sind in Tidy wieder die warnings da und w3c meckert auch.

Wandel ich die Daten aus der DB allerdings mit htmlentities() ! um, dann zeigt mir Tidy wieder die warnings an, aber w3c wiederum sagt, dass die Seite utf-8 valide ist!?
Es wäre nett, wenn mir jemand einen kleinen Tipp geben könnte, wo hier die Fehler bzw. Denkfehler liegen.

Die Domain worum es sich handelt lautet:
www.eurogastro.com/test/

Wenn die Fragen schon mal irgendwo beantwortet wurden, dann postet bitte den Link dahin. Ich hab gesucht, aber meine Fragen wurden für mich nicht beantwortet.

Vielen Dank im Voraus
Andi
Mit Zitat antworten
Sponsored Links
  #2 (permalink)  
Alt 25.04.2005, 15:14
Benutzerbild von Floele
Erfahrener Benutzer
XHTMLforum-Mitglied
 
Registriert seit: 30.03.2005
Beiträge: 355
Floele befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
4.
Ich verwende unter anderen Tidy vom Firefox. Errors werden 0 angezeigt, aber 22 warnings. Diese Warnings zeigen genau auf <a> Zeilen wo Umlaute im URL drin stehen. Ein Beispiel:
line 79 column 11 - Warning: <a> escaping malformed URI reference
und der URL lautet:
<a class="normal_blue" style="color: #000000;" href="http://www.eurogastro.mine.nu/show_items.php?item_nr=3144001&menu_show=Kochgerät e&sort_show=Friteusen&menu_id=1000&sort_id=1025&ak tion=true" title="Friteuse elektro">
Das sollte soch allgemein bekannt sein. & in URIs muss durch &amp; ersetzt werden.
Mit Zitat antworten
Sponsored Links
  #3 (permalink)  
Alt 25.04.2005, 15:40
Benutzerbild von Boris
Tanzender Webentwickler
XHTMLforum-Kenner
 
Registriert seit: 29.07.2004
Ort: Kornwestheim / Stuttgart
Beiträge: 4.925
Boris ist ein sehr geschätzer MenschBoris ist ein sehr geschätzer MenschBoris ist ein sehr geschätzer Mensch
Standard

Wenn ein UTF-8 Dokument Sessions/Daten erstellt, dann liegen die Daten auch in UTF-8 vor.

Maskieren muss man nichts, außer die Zeichen < > und & (und noch ein paar andere) ... sonst kann der Parser schlecht unterscheiden, ob Du ein HTML-Tag schreibst oder wirklich eine spitze Klammer willst.

Darum brauchst Du Dich aber nicht kümmern, nimm dazu die funktion htmlspecialchars: http://de.php.net/manual/en/function...ecialchars.php
__________________
My software never has bugs. It just develops random features ...

» DevShack - die Website des freien Webentwicklers Boris Bojic
Mit Zitat antworten
  #4 (permalink)  
Alt 25.04.2005, 16:28
papa
neuer user
Thread-Ersteller
 
Registriert seit: 06.04.2005
Ort: Berlin
Beiträge: 27
lewian befindet sich auf einem aufstrebenden Ast
Standard

@Floele
Ja das ist mir auch bekannt und wird auch von mir so verwendet.
Ich bin gerade am probieren und hab leider einen Versuchslink gepostet - ist mir nicht aufgefallen, sorry.

Also die &amp; sind nicht der Grund der Problematik, denn mit denen sind die warnings von Tidy auch vorhanden.

@Boris
das mit den Sessions hab ich mir auch so erklärt - wollte nur nochmal sicher gehen.
Hm... Deiner Erklärung mit den htmlspecialchars() kann ich nicht ganz folgen. Was mache ich in meinem Fall, wenn die ganzen HTML relevanten Sachen in Templates stehen? Da brauch ich ja normal keine Umwandlung!?

Beispiel:
wo kommen bei diesem Link die 36 warnings von Tidy her?
Tidy mit Firefox 1.0.1
http://www.eurogastro.com/test/show_...0&sort_id=9012
Die Daten für die Links in den einzelnen Artikeln stehen in einem Template welches in UTF8 gespeichert ist.
w3c sagt es ist valide, nur die warnings von Tidy kann ich mir nicht erklären.

Danke Gruss Andi
Mit Zitat antworten
  #5 (permalink)  
Alt 25.04.2005, 16:38
Benutzerbild von Boris
Tanzender Webentwickler
XHTMLforum-Kenner
 
Registriert seit: 29.07.2004
Ort: Kornwestheim / Stuttgart
Beiträge: 4.925
Boris ist ein sehr geschätzer MenschBoris ist ein sehr geschätzer MenschBoris ist ein sehr geschätzer Mensch
Standard

Wenn Du in Templates lauter unmaskierte Zeichen hast wie z.B: &, dann musst Du es überall auch manuell ändern in &amp usw. ...
__________________
My software never has bugs. It just develops random features ...

» DevShack - die Website des freien Webentwicklers Boris Bojic
Mit Zitat antworten
  #6 (permalink)  
Alt 25.04.2005, 16:49
papa
neuer user
Thread-Ersteller
 
Registriert seit: 06.04.2005
Ort: Berlin
Beiträge: 27
lewian befindet sich auf einem aufstrebenden Ast
Standard

Das ist mir schon klar, dass man diese Zeichen im HTML dementsprechend ändern muss.

Hier ist mal ein Auszug aus einem Template, der zur Darstellung von den Artikeln in dem oben geposteten Link führt:
Code:
<fieldset style="margin-top: 5px;border: 1px solid #000000;">
	<legend>
		{item_name}
	</legend>
	<div style="float: left;padding: 6px 6px 0px;">
		[img]{http_server}/images/{item_picture}.gif[/img]

	</div>
	<div style="padding: 6px 0px 6px 100px;">
		Artikelnummer:{item_nr}

		Artikelbeschreibung:{item_description}

		

		<div style="float: left;">
			<span style="font-size: 14px;color: #ff0000;">Preis: {item_price} €</span><span style="font-size: 10px;">(zzgl. 16% MwSt.)</span>
		</div>
		<div style="float: right;margin-right: 1em;">
			weitere Details &raquo;
		</div>
		<div class="clear mozclear"></div>
	</div>
	<div class="clear mozclear"></div>
</fieldset>
Was ist hieran noch falsch? Bzw. was ist nicht erlaubt?
Wo kommen die Warnings von Tidy her?

Danke Gruss Andi
Mit Zitat antworten
  #7 (permalink)  
Alt 25.04.2005, 16:55
Benutzerbild von Floele
Erfahrener Benutzer
XHTMLforum-Mitglied
 
Registriert seit: 30.03.2005
Beiträge: 355
Floele befindet sich auf einem aufstrebenden Ast
Standard

Guck mal hier:
http://validator.w3.org/check?verbos...sort_id%3D9012

Wie man sieht: Alles wohlgeformt. Also: Der Fehler liegt vermutlich in dem Programm und nicht in deiner Seite
Mit Zitat antworten
  #8 (permalink)  
Alt 26.04.2005, 00:17
papa
neuer user
Thread-Ersteller
 
Registriert seit: 06.04.2005
Ort: Berlin
Beiträge: 27
lewian befindet sich auf einem aufstrebenden Ast
Standard

Das hatte ich ja schonmal geschrieben, dass w3c sagt es ist valide.
Das komische sind ja die warnings von Tidy - ein Bug in Tidy glaub ich nicht, auf www.wikipedia.de ist ja auch alles ok, also 0 errors und 0 warnings.

Ich hab noch ein bisschen experimentiert, doch leider nur noch mehr Merkwürdigkeiten aufgedeckt...

Sobald ein Umlaut in dem Link enthalten ist und man für diesen Eintrag utf8_decode() anwendet, dann gibts 0 errors und 0 warnings, aber der Umlaut wird ja dann falsch dargestellt, somit fällt die Seite bei w3c durch.

http://www.eurogastro.com/test/show_...0&sort_id=9012

Merkwürdig ist noch eins: Ich habe auf dieser Seite ganz unten eine Seitenzahl und nur bei der Generierung des Seitenzahllinks habe ich mal für die Umlaute utf8_decode() angewendet.
Alle Artikel auf der Seite beeinhalten Haargenau den gleichen Link nur mit dem Zusatz ?item_nr=nummer&amp;..... und werden nicht mit utf8_decode() behandelt.
w3c zeigt mir dann auch nur dieses eine Zeichen im Seitenzahllink als Fehler an:
Sorry, I am unable to validate this document because on line 200 it contained one or more bytes that I cannot interpret as utf-8

Lasse ich in dem Seitenzahllink das utf8_decode() raus, kommen wieder die warnings, aber es ist dann w3c konform


Wieso dieses Verhalten?
Wie müsste ein Link korrekt aussehen um w3c-konform zu sein und Tidy zu 0 warnings zu überreden?

Hoffe es kann mich jemand aufklären!
Gruss Andi
Mit Zitat antworten
  #9 (permalink)  
Alt 26.04.2005, 18:41
Neuer Benutzer
neuer user
 
Registriert seit: 29.10.2004
Beiträge: 28
kasper befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Boris ([url=http://www.xhtmlforum.de/viewtopic.php?p=25745#25745
¶[/url])]Maskieren muss man nichts, außer die Zeichen < > und & (und noch ein paar andere) ...
Welche wären diese paar anderen Zeichen?

(BTW: Eigentlich braucht nichtmal das „>“ maskiert werden. Nur „<“ und „&“ – und das auch nicht in allen Fällen, wenn HTML verwendet wird. Aber man geht natürlich auf Nummer sicher, wenn man die Faustregel „<“, „>“ und „&“ immer maskieren anwendet.)


Zitat:
Zitat von lewian ([url=http://www.xhtmlforum.de/viewtopic.php?p=25800#25800
¶[/url])]Das hatte ich ja schonmal geschrieben, dass w3c sagt es ist valide.
Ganz allgemein: Der W3C-Validator kann nicht jeden Fehler finden. Für XHTML nimmt man besser einen Schema-Validator wie den von Christoph Schneegans: http://schneegans.de/sv/
Mit Zitat antworten
Sponsored Links
  #10 (permalink)  
Alt 27.04.2005, 01:15
Benutzerbild von Boris
Tanzender Webentwickler
XHTMLforum-Kenner
 
Registriert seit: 29.07.2004
Ort: Kornwestheim / Stuttgart
Beiträge: 4.925
Boris ist ein sehr geschätzer MenschBoris ist ein sehr geschätzer MenschBoris ist ein sehr geschätzer Mensch
Standard

Zitat:
Zitat von kasper
Welche wären diese paar anderen Zeichen?
The translations performed are:

'&' (ampersand) becomes '&amp;'

'"' (double quote) becomes '&quot;' when ENT_NOQUOTES is not set.

''' (single quote) becomes ''' only when ENT_QUOTES is set.

'<' (less than) becomes '&lt;'

'>' (greater than) becomes '&gt;'

Mit PHP: http://de.php.net/manual/en/function...ecialchars.php
__________________
My software never has bugs. It just develops random features ...

» DevShack - die Website des freien Webentwicklers Boris Bojic
Mit Zitat antworten
Sponsored Links
Antwort

Themen-Optionen
Ansicht

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 aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
FAQ -- Häufig gestellte Fragen und häufig gegebene Antworten mazzo CSS 10 05.04.2012 18:32
Suche PHP Funktion die URL Fähige Strings aus utf8 strings erzeugt braindead Serveradministration und serverseitige Scripte 14 06.02.2009 22:38
Fragen über Fragen jules CSS 5 09.10.2008 16:21
paar Probleme mit dem CSS Layout SimonK. CSS 6 05.10.2008 15:57
Probleme mit Positionierungen schani CSS 3 17.02.2006 15:12


Alle Zeitangaben in WEZ +2. Es ist jetzt 12:10 Uhr.