httpd.conf auf utf-8

quidnovi

Erfahrenes Mitglied
Hi folks,

hoffe, dass ich mit diesem Thema hier nicht falsch gelandet bin.

Ich habe nun im Netz wegen der Umstellung auf utf-8 recherchiert, einiges gefunden, aber das Ganze trotzdem leider nicht zum laufen gebracht.

Das habe ich bereits umgestellt:
1) Kollation der MysqlDb auf "utf8_unicode_ci";

2) Bei der Datenübergabe:
PHP:
$charset = "utf-8";
		echo "<FORM method=\"post\" action=\"$target\" " .
        "enctype=\"multipart/form-data\" accept-charset=\"$charset\">";

3) Bei jedem Scriptanfang:
PHP:
$charset = "utf-8";

# header
header("Content-Type: text/html; charset=$charset");

4) HTML:
HTML:
"<meta http-equiv='Content-Type' content='text/html; charset=utf-8'>".

5) php.ini
; PHP's built-in default is text/html
default_mimetype = "text/html"
;default_charset = "iso-8859-1"
default_charset = "utf-8"

So, nun zeigt mir Firefox und IE trotzdem die Umlaute mit einem ? an.

Nun machte ich mich daran, die httpd-languages.conf (xampp Apache 2.2.8, MySQL 5.0.51a, PHP 5.2.5 + PHP 4.4.8 + PEAR) wie folgt auf utf-8 umzustellen:
Statt AddDefaultCharset ISO-8859-1 => AddDefaultCharset utf-8.

Auch nach Neustart bekomme ich immer noch nicht die Umlaute richtig angezeigt.

Bitte teilt mir mit, wie und wo ich überall die Umstellung auf utf-8 durchführen muss.

Vielen Dank für Eure Hilfe im Voraus
 
Zuletzt bearbeitet:
Hi Gumbo,

ja, ähh, glaube schon.

Die Scripts mit Datenbank laufen bei einem Provider einwandfrei.
Nur lokal nicht.
Daher denke ich, dass ich die lokalen apache Einstellungen falsch habe.

Frage: sind die Daten mit den oben angeführten Einstellungen nicht utf-8 kodiert?
 
Die erste Einstellung bestimmt nur die Sortierreihenfolge. Die zweite bestimmt, dass die Daten dieses Formulars mit UTF-8 kodiert werden sollten. Die dritte, vierte und fünfte sorgt dafür, dass das Dokument als UTF-8-kodiert interpretiert wird.
Es steht aber noch nicht fest, dass die Dateien tatsächlich UTF-8-kodiert sind. Denn das lässt sich nur im Editor einstellen.
 
Hey, wow, jetzt ist schon einiges klarer, danke.

Habe jetzt den Editor auf UTF-8 umgestellt.

Was ich aber immer noch nicht verstehe ist, wieso werden die Umlaute lokal falsch, beim Provider aber richtig dargestellt und das mit Firefox und IE? Es sind 1:1 dieselben Scripts und dieselbe Mysql Db.
Hoffentlich ist das kein glücklicher Zufall.
 
*verzweifel*

Habe nun folgendes zusätzlich, zu den oben genannten, geändert.

xampp/mysql/my.cnf:
Code:
[ mysql]
default-character-set=utf8

xampp/apache/httpd.conf:
AddType text/html .shtml
AddType text/css;charset=utf-8 .css
AddType text/html;charset=utf-8 .html
AddDefaultCharset utf-8

xampp/php/php.ini
;default_charset = "iso-8859-1"
default_charset = "utf-8"



So, jetzt sehe ich in den browsern den ersten Umlaut richtig - spitze!
Nur wenn vom Eingabeformular "ööö" kommt, dann erscheint: ö??

Wie bitte kann ich den Apachen bezwingen? Bitte um Hilfe
 
jau, ganz oben Punkt 2) Bei der Datenübergabe

Wo könnte ich noch suchen?
 
Zuletzt bearbeitet:
Wird das Formulardokument und das Dokument, in dem die Eingabe ausgegeben wird, ebenfalls als UTF-8-kodiert ausgeliefert?
 
Übergebe die Daten mit:
PHP:
$charset = "utf-8";
echo "<FORM method=\"post\" action=\"$target\" " .
        "enctype=\"multipart/form-data\" accept-charset=\"$charset\">";

Das Ausgabeformular im HTML Bereich:
HTML:
"<meta http-equiv='Content-Type' content='text/html; charset=utf-8'>".

Das Ausgabeformular im PHP Bereich:
PHP:
$charset = "utf-8";
header("Content-Type: text/html; charset=$charset");


Genügt das nit? Oder ist das schon wieder zuviel?

ps: Binde den HTML Header mit einer function ein:
PHP:
function htmlHeader($kopf,$titel){

		echo "<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.0 Transitional//EN'>".
				"<HTML>".
				"<HEAD>".
				"<TITLE>".$kopf." / ".$titel."</TITLE>".
				"<META NAME='Generator' CONTENT='EditPlus'>".
				"<META NAME='Author' CONTENT=''>".
				"<META NAME='Keywords' CONTENT=''>".
				"<META NAME='Description' CONTENT=''>".
				"<meta http-equiv='Content-Type' content='text/html; charset=utf-8'>".
				"<link rel='stylesheet' type='text/css' href='./css/css.css' />".
				"</HEAD>".

				"<BODY>";
	}
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück