Mit PHP in UTF-8 umwandeln?

  • Themenstarter Themenstarter blizz-faad
  • Beginndatum Beginndatum
B

blizz-faad

Hallo Leute,
eigentlich hätte ich gedacht das ich via PHP eine Include-Seite locker in UTF-8 konvertieren kann, leider funktioniert dies doch nicht ganz.
Zwar werden die Sonderzeichen (ä, ü, ö, ß, etc.) richtig ausgegeben, also ohne dieses "Schwarze-Routen-Fragezeichen", jedoch ist es nicht valide (zumindest nicht bei Selfhtml). Bei W3C ist es valide. Nun weiß ich nicht was ich falsch gemacht habe.

Folgendes verwende ich:
PHP:
<?php header('Content-Type: text/html; charset=utf-8'); ?>

<html xmlns="http://www.w3.org/1999/xhtml" lang="de-DE" xml:lang="de-DE">

<meta http-equiv="content-type" content="text/html; charset=utf-8" />

// Include-Datei ausgeben 
	  ob_start(create_function('$var_inc', 'return utf8_encode($var_inc);'));
      include($var_inc);


Fehlermeldung bei Selfhtml:
Code:
Fehler (12)
 
Zeile	Spalte:	91
36	Fehler:	Nicht erlaubtes Zeichen. ASCII-CODE ' 132 '
 	Fehlerstelle:	

l Center Agent Outbound. Begriffe wie „SEM“ „SEO“ „Adwords“ sind Ihnen geläu 


 	
Spalte:	95
Fehler:	Nicht erlaubtes Zeichen. ASCII-CODE ' 147 '
Fehlerstelle:	

nter Agent Outbound. Begriffe wie „SEM“ „SEO“ „Adwords“ sind Ihnen geläufig. 


 	
Spalte:	97
Fehler:	Nicht erlaubtes Zeichen. ASCII-CODE ' 132 '
Fehlerstelle:	

er Agent Outbound. Begriffe wie „SEM“ „SEO“ „Adwords“ sind Ihnen geläufig. S 


 	
Spalte:	101
Fehler:	Nicht erlaubtes Zeichen. ASCII-CODE ' 147 '
Fehlerstelle:	

gent Outbound. Begriffe wie „SEM“ „SEO“ „Adwords“ sind Ihnen geläufig. Sie h 


 	
Spalte:	103
Fehler:	Nicht erlaubtes Zeichen. ASCII-CODE ' 132 '
Fehlerstelle:	

nt Outbound. Begriffe wie „SEM“ „SEO“ „Adwords“ sind Ihnen geläufig. Sie hab 


 	
Spalte:	111
Fehler:	Nicht erlaubtes Zeichen. ASCII-CODE ' 147 '
Fehlerstelle:	

und. Begriffe wie „SEM“ „SEO“ „Adwords“ sind Ihnen geläufig. Sie haben eine  



 
Zeile	Spalte:	409
47	Fehler:	Nicht erlaubtes Zeichen. ASCII-CODE ' 132 '
 	Fehlerstelle:	

n Führerschein Klasse B. Begriffe wie „SEM“ „SEO“ „Adwords“ sind Ihnen geläu 


 	
Spalte:	413
Fehler:	Nicht erlaubtes Zeichen. ASCII-CODE ' 147 '
Fehlerstelle:	

hrerschein Klasse B. Begriffe wie „SEM“ „SEO“ „Adwords“ sind Ihnen geläufig. 


 	
Spalte:	415
Fehler:	Nicht erlaubtes Zeichen. ASCII-CODE ' 132 '
Fehlerstelle:	

erschein Klasse B. Begriffe wie „SEM“ „SEO“ „Adwords“ sind Ihnen geläufig.<b 


 	
Spalte:	419
Fehler:	Nicht erlaubtes Zeichen. ASCII-CODE ' 147 '
Fehlerstelle:	

hein Klasse B. Begriffe wie „SEM“ „SEO“ „Adwords“ sind Ihnen geläufig.<br /> 


 	
Spalte:	421
Fehler:	Nicht erlaubtes Zeichen. ASCII-CODE ' 132 '
Fehlerstelle:	

in Klasse B. Begriffe wie „SEM“ „SEO“ „Adwords“ sind Ihnen geläufig.<br /><b 


 	
Spalte:	429
Fehler:	Nicht erlaubtes Zeichen. ASCII-CODE ' 147 '
Fehlerstelle:	

...se B. Begriffe wie „SEM“ „SEO“ „Adwords“ sind Ihnen geläufig.<br /><br />
 
Hi,

im Zweifelsfall würde ich auf den W3C-Validator vertrauen. Bei den beiden Zeichen handelt es sich um die deutschen Anführungszeichen (die übrigens nicht in ISO-8859-1 enthalten sind), welche bei mir allerdings nicht korrekt dargestellt werden, wenn ich die Seite mal aufrufe (s. Anhang).

Die einfachste Lösung wäre, Du verwendest normale Anführungszeichen ("), diese werden von htmlspecialchars in &quot; übersetzt, dann gibt auch der SelfHTML-Validator Ruhe.

LG
 

Anhänge

  • anfuehrungszeichen.jpg
    anfuehrungszeichen.jpg
    10,4 KB · Aufrufe: 50
Für Anführungszeichen unten gibt es selbstverständlich auch etwas:
&ldquo; (doppelt oben links “ )
&rdquo; (doppelt oben rechts ” )
&bdquo; (doppelt unten „ )

http://www.w3.org/TR/html401/sgml/entities.html hat gesagt.:
<!ENTITY ldquo CDATA "“" -- left double quotation mark,
U+201C ISOnum -->
<!ENTITY rdquo CDATA "”" -- right double quotation mark,
U+201D ISOnum -->
<!ENTITY bdquo CDATA "„" -- double low-9 quotation mark, U+201E NEW -->
 
Zurück