Seite 1 von 1

HTML Code Spezialfrage zu dt. Sonderzeichen

Verfasst: 14.05.2006, 23:26
von Pyrate
Hi,

ich hab schon das Forum durchsucht und gegoogelt. Aber nur Widersprüche, bzw. keine Lösung gefungen.

Ich baue meine Seite als XHTML 1.0 transitional auf. Mit dem Zeichensatz (meta charset=...) UTF-8

Die Sprache meiner Website ist deutsch.

Nun habe ich sowohl im title Tag als in den Meta Tags sowie im body Text Umlautbeinhaltende Keywords. Ich habe im Moment alles mit HTML Entities geschrieben also ä = & a u u m l ; usw.
Teilweise lasse ich die Sonderzeichen (wenn die Wörter aus der DB kommen) von php per utf8_encode selber kodieren. Schaue ich jetzt in meinen Quelltext (IE u. FF), dann sind die manuellen Umlauteingaben (vorwiegend im title und den meta) wie ich sie eingegeben habe als & u u m l ; Entities zu sehen. Der Browser macht daraus natürlich äöü... Die per php umgewandelten Sonderzeichen erscheinen im Quelltext als äöü also als Umlaute.

Soll ich jetzt für die SEO meine manuellen Entities rausnehmen und durch äöü in UTF8 kodiert ersetzen (=aufwand, da ich das per php machen muss, oder die ganzen Entities umschreiben muss)?
oder sollte ich die per php umgewandelten Zeichen in Entities schreiben?

Oder erkennen Suchmaschinen sowohl Entities als ä ü ö und die php utf8_encode als äöü an, so dass die Seite auch für Umlaute optimal optimiert ;-) ist???

Danke,

Pyrate

Verfasst:
von

Verfasst: 14.05.2006, 23:36
von Fluidum
Es sollte dabei nicht nur um Suchmaschinen gehen...

Setze die Zeichen korrekt in UTF-8 um und nicht wie im ISO Zeichensatz ü = ü

Google wird es richtig erkennen, aber die Browser nicht immer richtig!

Sprich: Mach es ordentlich und im reinen UTF-8

Verfasst: 14.05.2006, 23:37
von Christophe
Hallo Pyrate,

solange der Zeichensatz der Seite korrekt gesetzt ist, d.h. im HTTP-Header, kannst du sowohl Entities, als auch nicht codierte Zeichen benutzen.
Fluidum hat geschrieben:Google wird es richtig erkennen, aber die Browser nicht immer richtig!
Welcher Browser hat mit Entities Probleme?

Verfasst:
von
SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


Verfasst: 14.05.2006, 23:41
von Pyrate
Wie folgt beginnt der Quellcode meiner Seite:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1 ... tional.dtd">
<html xmlns="https://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
<head>

<title>KW Titel</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />

usw.

Meinst Du das? Ist das so i.O.? Erkennen die Suchmaschinen sowohl Entities (auch im title und meta tags) als auch die UTF8 äöü als äöü an? Machen Entities keine Probs?

Oder ist HTTP Header was anderes?

Ach ja: Ich baue meine Website mit statischen URLs auf aber mit groß und kleinschreibung, ist davon abzuraten, soll ich nur kleinschreibung verwenden?

Verfasst: 14.05.2006, 23:46
von Christophe
Hallo Pyrate,

die HTTP-Header werden vom Webserver gesendet, du kannst sie hier angucken: https://www.rexswain.com/httpsview.html Die Content-Type-Zeile sollte dem Meta-Tag entsprechen.

Ich benutze in URLs nur Kleinschreibung, prinzipiell ist das aber egal.

Verfasst: 14.05.2006, 23:49
von Pyrate
Bei mir kommt da folgende Meldung:

Rex Swain's HTTP Viewer
https://www.rexswain.com/httpsview.html
Parameters:
URL = https://neu.cheatmore.de
UAG = Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)
AEN =
REQ = GET ; VER = 1.1 ; FMT = AUTO
Sending request:
GET / HTTP/1.1
Host: ******
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)
Connection: close

• Finding host IP address...
Host IP address = ****
• Finding TCP protocol...
• Binding to local socket...
• Connecting to host...
• Sending request...
• Receiving response...

Maximum execution time of 15 seconds exceeded!
Done
Total elapsed time: 15 seconds

Was heißt das nun???

Danke für deine Hilfe

Verfasst: 14.05.2006, 23:53
von Pyrate
edvsb hat geschrieben:Hi, also das müßte so schon passen. Kannst aber notfalls noch mal den entsprechenden Header per PHP mitsenden. Mache ich aber auch nicht und alle Seiten laufen fehlerfrei.
kannst du sowohl Entities, als auch nicht codierte Zeichen benutzen
Ja und nein. Entities gehen zwar, sollten aber nicht benutzt werden bei UTF-8. Würde auch dem Sinn wiedersprechen.

Suche Dir einen Editor der UFT-8 verarbeiten kann und arbeite nur noch damit. Da werdern dann auch die entsprechenden Umlaute richtig gespeichert. Schreiben tust Du sie einfach al ö ä ü.

Zu der Groß- und Kleinschreibung kann ich Dir nichts sagen. Ich benutze es sowohl als auch.

Gruß, Ingo

Danke, aber:
Wie schreibe ich dann &? Oder gibt es dafür ein UTF8 Equivalent? Denn wenn ich & in den Text ohne & amp ; schreibe bekomme ich vom W3C Valid. eine Fehlermeldung...

Verfasst: 14.05.2006, 23:55
von Pyrate
Hi, also das müßte so schon passen. Kannst aber notfalls noch mal den entsprechenden Header per PHP mitsenden. Mache ich aber auch nicht und alle Seiten laufen fehlerfrei.
Wie wäre der php Code dafür?

Verfasst: 15.05.2006, 00:00
von Christophe
edvsb hat geschrieben:
kannst du sowohl Entities, als auch nicht codierte Zeichen benutzen
Ja und nein. Entities gehen zwar, sollten aber nicht benutzt werden bei UTF-8. Würde auch dem Sinn wiedersprechen.
Wenn er alle Sonderzeichen schon Entity-Codiert hat, braucht er sich nicht die Arbeit zu machen und es zu ändern.
Pyrate hat geschrieben:Wie schreibe ich dann &? Oder gibt es dafür ein UTF8 Equivalent? Denn wenn ich & in den Text ohne & amp ; schreibe bekomme ich vom W3C Valid. eine Fehlermeldung...
HTML-Sonderzeichen, d.h. <, >, &, etc. müssen weiterhin codiert werden.
Pyrate hat geschrieben:Wie wäre der php Code dafür?
header('Content-Type: text/html; charset=utf-8');

Mit Wannabrowser geht es, die Header sind:

Code: Alles auswählen

HTTP/1.1 200 OK
Date&#58; Sun, 14 May 2006 22&#58;48&#58;25 GMT
Server&#58; Apache/2.0.48 &#40;Linux/SuSE&#41;
X-Powered-By&#58; PHP/4.3.3
Transfer-Encoding&#58; chunked
Content-Type&#58; text/html

Verfasst: 15.05.2006, 00:12
von Christophe
Wo wir schon beim Thema XHTML sind, es hilft das XHTML-Einmaleins von Christoph Schneegans und sein Validator.

Verfasst: 15.05.2006, 07:55
von marle
eine Page im UTF-8
falls es weiterhilft

www.industrystock.com

Verfasst: 15.05.2006, 08:30
von Christophe
edvsb hat geschrieben:Der Sinn davon ist ja, dass auch User die Seite betrachten können, die den ISO-Zeichensatz nicht haben. Und die könnten die Entity nicht richtig anzeigen. UTF-8 könnten diese User sehr wohl. Also sollte man sich schon die arbeit machen und alles richtigstellen.
Oh, das wusste ich nicht. Kannst du mir ein Beispiel für deine Aussage geben? Ich kenne keinen Browser, der Entitites nicht darstellen kann.

Verfasst: 15.05.2006, 13:02
von Pyrate
edvsb hat geschrieben:Hi,

also erst mal. Ich habe ein anderes Tool zum Testen genutzt. Und, Dein Server liefert kein UTF-8 aus. Du hast als Content-Type text/html lieferst aber

Code: Alles auswählen

Content-Type&#58; text/xml
Edit: die Behauptung nehme ich zurück. Das liegt am Tool. Content-Type ist text/html

Ich hatte mal eine schöne Seite bezüglich UTF-8, finde sie aber geade nicht. das & schraibe ich momentan auch als & amp ; aber nur wegen dem Validator. Richtig wäre einfach &.

Bei utf-8 darf man specialchars verwenden, sollte aber auf html-entities verzichten. Nachtrag: bezogen auf deutsche Umlaute. Allgemeine bleiben weiterhin als Entity

Gruß, Ingo

Die hier habe ich aber mal auf die schnelle gefunden, wobei da ein paar fehler drinnen sind: https://blog.antikoerperchen.de/beitrag ... ntity.html[/b]
So, habe die Anweisungen jetzt soweit umgesetzt. Muss mir aber noch einen UTF8 Editor zulegen. Damit ich meine manuell eingegebenen Umlaute nicht als Entities habe. <, >, &, werde ich weiterhin als Entities schreiben - > richtig?
Gibt es sonst noch zeichen, die einer besonderen Beachtung bedürfen?

Jetzt ist mein Doctype ja XHTML 1 trans:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1 ... tional.dtd">
<html xmlns="https://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
<head>

Ist es dann okay wenn ich mit php und im Meta tag content="text/html" habe?
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />


Im Blog steht nämlich:

Für HTML:
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">

Für XHTML:
<meta http-equiv="content-type" content="application/xhtml+xml;charset=utf-8" />

Muss ich das ändern? Auch in der php header funktion?


Ich habe in meiner .htaccess jetzt
AddCharset utf-8 .css .html .xhtml .php

Nun habe ich auch Dateien ohne .endung die ich wie folgt durch die .htaccess als php verarbeiten lasse (alle php Dateien senden den header() mit dem charset...)
<Files DATEINAME>
ForceType application/x-httpd-php
</Files>

Muss ich da auch noch was von wegen
<Files DATEINAME>
ForceType application/x-httpd-php
AddCharset utf-8
</Files>
einbauen? und wenn ja wie lautet die Syntax?


Danke für eure Hilfe, super!!!

Verfasst: 15.05.2006, 15:37
von Christophe
Hallo Pyrate,

der Meta-Tag sollte auch bei XHTML <meta http-equiv="Content-Type" content="text/html;charset=utf-8"> lauten. Eine Begründung gibt es auf der oben von mir zitierten Seite von Christoph Schneegans.

Auf im HTTP-Header würde ich Content-Type bei text/html lassen, es sei denn, du weiß genau was du da machst.

HTML-Sonderzeichen musst du so umwandeln:
'&' (kaufmännisches und) wird zu '&'
'"' (doppelte Anführungszeichen) wird zu '"'
''' (einfaches Anführungszeichen) wird zu '''
'<' (kleiner als) wird zu '<'
'>' (grösser als) wird zu '>'
Die anderen Entities würde ich an deiner Stelle so belassen meiner Meinung nach gibt es zur Zeit keine Nachteile.

Prinzipiell, da haben edvsb und Fluidum Recht, ist es aber sinnvoll Sonderzeichen nicht als Entities zu codieren, sondern utf-8.

Wenn du alle deine PHP-Dateien mit dem UTF-8-Header versehen willst, kannst du das in der php.ini machen:

Code: Alles auswählen

; PHP's built-in default is text/html
default_mimetype = "text/html"
default_charset = "utf-8"
Viele Grüße,
Christophe