zurück zur Startseite
  


Zurück XHTMLforum > (X)HTML und CSS > Knowledge Base
Seite neu laden PHP, XHTML und Unicode

Antwort
 
LinkBack Themen-Optionen Ansicht
  #31 (permalink)  
Alt 14.08.2004, 21:57
Erfahrener Benutzer
XHTMLforum-Kenner
 
Registriert seit: 02.06.2003
Beiträge: 2.441
ulle befindet sich auf einem aufstrebenden Ast
Standard

@Adagio
Zitat:
Zitat von Adogio
Hast Du diesen Beitrag eigentlich verstanden
Ich weiß nicht woher Du Deinen Mut beziehst ...
Sowas ist schon persönlich Vorsicht Schau lieber auf Deine Site
http://validator.w3.org/check?uri=ht...Fuser%3DAdagio

Was ich hier verstehe und was nicht - brauche ich Dir bestimmt nicht belegen.............

Falls Du noch ein wenig Lektüre zum UNICODE benötigst
http://www.unicode.org/
===============================

@toscho

Danke erstmal, mein Problem bezieht sich auf Formulareingaben die in Norwegen oder in ostlichen Ländern getätigt werden, beziehungsweise aus MS Word-Dokummenten in Formulare kopiert werden, nicht selten Zeichensalat.

Der Zeichensatz ist ja weniger ein Problem der Ausgabe, sondern der Formulareingabe, wie Du ja schon erwähnt hast.

Maskierung in PHP über htmlentities
Zitat:
htmlentities ( string string [, int quote_style [, string charset]])

Wie auch bei htmlspecialchars(), kann man als dritten optionalen Parameter den Zeichensatz angeben, der zur Konvertierung verwendet wird. Diese Feature wurde in PHP 4.1.0 eingeführt. Gegenwärtig wird standardmäßig der ISO-8859-1 Zeichensatz verwendet.

http://de2.php.net/manual/de/function.htmlentities.php
Gibst Du hier UTF-8 an
__________________
</ulle>
Mit Zitat antworten
Sponsored Links
  #32 (permalink)  
Alt 14.08.2004, 22:26
Benutzerbild von Boris
Tanzender Webentwickler
XHTMLforum-Kenner
 
Registriert seit: 29.07.2004
Ort: Kornwestheim / Stuttgart
Beiträge: 4.926
Boris ist ein sehr geschätzer MenschBoris ist ein sehr geschätzer MenschBoris ist ein sehr geschätzer Mensch
Standard

Zitat:
Zitat von ulle
@Adagio
Ich weiß nicht woher Du Deinen Mut beziehst ...
Sowas ist schon persönlich Vorsicht Schau lieber auf Deine Site
http://validator.w3.org/check?uri=ht...Fuser%3DAdagio
Ich wüßte nicht, seit wann ein öffentliches (fremdes) Projekt (=Nethands.de), wo sich jeder beliebige User (so wie ich) einen Account anlegen kann, um seine Rechnerdaten einzutragen, gleich "meine Seite" sein soll.

Wenn Du eine meiner Seiten zerpflücken willst, nimm diese:
http://web11.p15131386.pureserver.info/

Ich habe Dir eine simple Frage gestellt. Wenn Du Dich dadurch gleich persönlich angegriffen fühlst, solltest Du einen mal eine Runde um den Block rennen gehen, um Dich abzureagieren.

Und wenn Du wieder auf dem Teppich bist, schau Dir das mal an:
http://de.php.net/manual/de/function.utf8-encode.php
http://de.php.net/manual/de/function.imap-utf8.php

Zudem dürfte es egal sein, "wo" auf der Welt eines Deiner Formulare ausgefüllt wird bei einem UTF-8-Dokument. Wenn es nicht funktioniert, liegt der Fehler in Deinem Code.
__________________
My software never has bugs. It just develops random features ...

» DevShack - die Website des freien Webentwicklers Boris Bojic
Mit Zitat antworten
Sponsored Links
  #33 (permalink)  
Alt 14.08.2004, 22:37
Benutzerbild von toscho
Perplexifikator
XHTMLforum-Kenner
 
Registriert seit: 22.05.2004
Ort: Halle/Saale
Beiträge: 1.565
toscho sorgt für eine eindrucksvolle Atmosphäretoscho sorgt für eine eindrucksvolle Atmosphäre
Standard

Nein, ich benutze htmlentities() nicht, das ist mir zu gierig. htmlspecialchars() genügt zumeist.
Und das Problem »falscher« Zeichen entsteht nicht, wenn das Formular in UTF-8 ausgeliefert wird und ein entsprechend befülltes »accept-charset="utf-8"« hat.

Der IE ignoriert erstmal das »accept-charset« und orientiert sich an der Kodierung der Seite. Nur wenn der Nutzer etwas eingibt, das in dieser Kodierung nicht übermittelt werden kann, nimmt er den Wert aus »accept-charset«, was dazu führen kann, daß du unterschiedlichk kodierte Eingaben bekommst. Deshalb ist es wichtig, hier immer auf Konsistenz zu achten und idealerweise UTF-8 zu nehmen.
Ganz böse wird es, wenn eine Seite in ISO-8859-1 kodiert ist, das Formular kein »accept-charset« hat und der Nutzer ein € eingibt: Mozilla und IE nehmen dann einfach WINDOWS-1252 — und du hast serverseitig keine Chance, das herauszufinden. Opera ab Version 7.2 (glaube ich) schickt in diesen Fällen das Zeichen als (dezimale) numerische Zeichenreferenz und bleibt bei der angegebenen Kodierung. Frühere Operas schicken leider ein Fragezeichen.

Man kann sich etwas absichern, indem man dem Formular dieses mitgibt:
Code:
<input type="hidden" name="_charset_">
Das wird bei den meisten Browsern mit der tatsächlich verwendeten Kodierung befüllt, hilft aber logischerweise wenig bei »mixed encodings«.
Eine wirklich sichere Methode, die verwendete Kodierung herauszufinden, gibt es nicht. Du kannst höchstens feststellen, ob es keine UTF-Kodierung ist. Alle anderen Kodierungen lassen sich nicht allein mit syntaktischen Methoden validieren, da brauchst du dann noch Semantik, und spätestens dann artet das richtig in Arbeit aus.

Deshalb kann ich meinen Rat zu UTF-8 nur wiederholen.

Gruß
Thomas
Mit Zitat antworten
  #34 (permalink)  
Alt 14.08.2004, 23:01
Erfahrener Benutzer
XHTMLforum-Kenner
 
Registriert seit: 02.06.2003
Beiträge: 2.441
ulle befindet sich auf einem aufstrebenden Ast
Standard

@Adagio

Zitat:
Wenn Du eine meiner Seiten zerpflücken willst, nimm diese:
http://web11.p15131386.pureserver.info/
http://web3.p15131386.pureserver.info/ dort befindet sich CODE den ich mal hier gepostet habe....sogar zu faul den Klassennamen umzuschreiben
Code:
<div class="w3cbutton3">
http://web10.p15131386.pureserver.info/ mit einem
Code:
Apache/1.3.26 Server at web10.p15131386.pureserver.info Port 80
wäre ich ganz Vorsichtig,
zumindest würde ich niemanden verraten welcher Apache im Einsatz ist.
(ServerSignature, ServerTokens), also frage mich nicht was ich verstehe, schon gar nicht wenn DU nicht gefragt warst.

Hier zählen Antworten und keine Gegenfragen

usw..........



Zitat:
Zitat von Adagio
Ich habe Dir eine simple Frage gestellt. Wenn Du Dich dadurch gleich persönlich angegriffen fühlst, solltest Du einen mal eine Runde um den Block rennen gehen, um Dich abzureagieren.
Genau das meine ich, Du bist persönlich

Ich will von Dir keine Kommentare, schau in den Spiegel, schau auf Dein Anmeldedatum, schau auf die Qualität Deiner Beiträge
Respekt ist was Dir fehlt.





.
__________________
</ulle>
Mit Zitat antworten
  #35 (permalink)  
Alt 14.08.2004, 23:58
Erfahrener Benutzer
XHTMLforum-Kenner
 
Registriert seit: 02.06.2003
Beiträge: 2.441
ulle befindet sich auf einem aufstrebenden Ast
Standard

@toscho

Zitat:
Zitat von toscho
Nein, ich benutze htmlentities() nicht, das ist mir zu gierig. htmlspecialchars() genügt zumeist.
Auch bei htmlspecialchars() trifft oben genanntes zu, der standardmäßige Zeichensatz ist ISO-8859-1. Das dritte Argument wurde in PHP 4.1.0 eingeführt.

Zitat:
Zitat von toscho
Und das Problem »falscher« Zeichen entsteht nicht, wenn das Formular in UTF-8 ausgeliefert wird und ein entsprechend befülltes »accept-charset="utf-8"« hat.
Was meinst Du genau mit »accept-charset="utf-8"« ?

Ist das eine Headerangabe wie hier beschrieben
http://www.httpsniffer.com/http/1402.htm

oder ein Attribut im FORM-Tag:
Code:
<form action="do_it.php" accept-charset="UTF-8">
__________________
</ulle>
Mit Zitat antworten
  #36 (permalink)  
Alt 15.08.2004, 08:12
Benutzerbild von toscho
Perplexifikator
XHTMLforum-Kenner
 
Registriert seit: 22.05.2004
Ort: Halle/Saale
Beiträge: 1.565
toscho sorgt für eine eindrucksvolle Atmosphäretoscho sorgt für eine eindrucksvolle Atmosphäre
Standard

htmlspecialchars() wandelt ASCII-Zeichen in ASCII-Zeichen um — da brauche ich das dritte Argument normalerweise nicht, weil UTF-8 voll ASCII-kompatibel ist.
Zitat:
Was meinst Du genau mit »accept-charset="utf-8"« ?
Das Attribut natürlich. Dieser Header soll nur vom UA gesendet werden, nicht vom Server.

Gruß
Thomas
Mit Zitat antworten
  #37 (permalink)  
Alt 09.09.2004, 21:01
Benutzer
neuer user
 
Registriert seit: 24.02.2004
Beiträge: 48
to.ni befindet sich auf einem aufstrebenden Ast
Standard

hallo zusammen,

habe mich in den letzten tagen mit diesem thema beschäftigt und dazu vorallem die folgende lektüren gelesen:
- http://let.imperia.org/howto/de/unicode/unicode.html
- http://edition-w3c.de/#Buecher (übersetzung der html 4-spezifikation im buch)
- diesen tread

aber immer ist noch nicht alles klar:
unicode ist also eine zuordnung für alle zeichen, die es gibt (oder soll es zumindest werden) wie viele bit verwendet es dafür?
bei utf-8 werden doch sonderzeichen auf mehrere byte aufgeteil oder? während "normale" zeichen mit 8 bit (1 byte) dargestellt werden... aber hängt utf und unicode zusammen?

ascii bzw. iso ist für mich momentan noch (von der funktionsweise) das selbe wie unicode nur eben mit 7/8 bit und mit beschränker anzahl von sonderzeichen (bzw. unterschieden je nach iso-satz).

so ist meine momentane sichweise und ich wollte mich hier nur versichern ob ich die welt nicht als eine scheibe sehe...

Danke für eure hilfe...

mfg to.ni

edit: Sorry, Tipp-Fehler entfernt
Mit Zitat antworten
  #38 (permalink)  
Alt 10.09.2004, 10:11
Erfahrener Benutzer
XHTMLforum-Kenner
 
Registriert seit: 02.06.2003
Beiträge: 2.441
ulle befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
7/8 bit
Also Grundsätzlich ist ein Byte immer noch 8 Bit.

0010 1101 (bin) 2D (hex/Byte) 45 (dez)

ergo mögliche Zeichen

von 0000 0000 ~ 00 ~ 0 bis 1111 1111 ~ FF ~ 255 also ingesamt 256 (255 + 0)

(Aber das ist wohl bekannt, und kann man gut im Kopf rechnen )

============

Mit wieviel Byte ein Zeichensatz nun auskommt ist eine Definition.
Es gibt durchaus Protokolle die mehre/weniger Byte/Bit für ein Zeichen benötigen.

Stell Dir vor ein Zeichensatz benutzt 16 Bit also 2 Byte, das wären 256 x 256 = 65536 Zeichen

Aber darüber mußt Du Dir als Anwender eines Zeichensatzes keine Gedanken machen.
__________________
</ulle>
Mit Zitat antworten
  #39 (permalink)  
Alt 16.09.2004, 15:12
Erfahrener Benutzer
XHTMLforum-Kenner
 
Registriert seit: 02.06.2003
Beiträge: 2.441
ulle befindet sich auf einem aufstrebenden Ast
Standard

Interessanter Satz zum Thema UTF-8, zumindest schafft dieser evtl. ein wenig Klarheit, und beantwortet auch noch to.ni Frage besser als ich es getan habe.

Gelesen im:
PHP-Magazin 6.04 / Artikel "Zeichen setzen"
http://www.phpmag.de/

Zitat:
UTF-8 steht für Unicode Transformation Format-8 und ist ein Unicode-Zeichensatz, der je nach Zeichen ein bis vier Bytes zur Kodierung des Zeichens verwendet. Die Kodierung der ersten 128 Zeichen ist identisch mit 7-Bit ASCII, somit ist jedes ASCII-Zeichen auch ein gültiges UTF-8-Zeichen. Zeichen größer 127 werden durch mehere Bytes dargestellt.
__________________
</ulle>
Mit Zitat antworten
Sponsored Links
  #40 (permalink)  
Alt 08.11.2004, 15:51
Benutzer
neuer user
 
Registriert seit: 06.11.2004
Beiträge: 34
manithu befindet sich auf einem aufstrebenden Ast
Standard

Ich habe vor auch auf utf-8 umzusteigen, nur leider hab ich noch keinen Text Editor gefunden der sowohl PHP- und (X)HTML-Syntax hervorhebt als auch Dateien in utf-8 abspeichern kann.
Welchen nehmt ihr da?

Noch eine Frage:
Interpretieren die Browser das richtig wenn ich das & Symbol in href/action attribute unmaskiert eintrage? Der Validator zeigt da nämlich eine Warnung an.


//Hab jetzt den TextEdit 4, danke Toscho für den Link!
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
Dateien auslagern - Include und PHP ArcVieh Serveradministration und serverseitige Scripte 17 27.03.2008 19:09
PHP und XHTML 1.1! Martin88 (X)HTML 3 20.11.2006 19:21
Xhtml und PHP weightwatcher (X)HTML 11 22.03.2005 21:29
XHTML 1.1 valid, mit php include, aber *.html, geht das ? websitedesigner (X)HTML 9 06.12.2004 17:45
Frage bezüglich PHP und XHTML / UTF-8 Kn1bbl (X)HTML 1 15.11.2004 23:05


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