Bei PHP "?" anstatt Umlaut (ÄÖÜ)?

...komplette Frage anzeigen

2 Antworten

Du musst nicht nur im Header das Charset auf utf-8 setzen, sondern die Datei auch so abspeichern (wobei das jeder ordentliche Editor sowieso macht, aber kA was du da vielleicht benutzt) und ggf auch in der php.ini das "default" Charset einstellen:

default_charset = "utf-8"

Vielleicht auch noch beim Webserver, auch wenn das afair Standard ist, beim Apache z.B. so:

AddDefaultCharset UTF-8

Wenn du keinen eigenen Server benutzt sollte es aber reichen, das Charset zu setzen und die Datei passend abzuspeichern, wäre schon ein merkwürdiger Hoster bei dem nicht utf-8 genutzt wird ;)

Falls du Daten aus einer DB anzeigst müssen natürlich auch die im passenden Character Encoding vorliegen, das könnte man notfalls aber auch nachträglich mit utf8_encode() machen.

Also ich bin noch am Programmieren lernen und mache das ganze deswegen auf meinem PC also localhost, und das default Charset in Php.ini ist auf UTF-8. Und wie meinst du das mit "die Datei auch so abspeichern", also ich speichere die Datein halt ganz normal als PHP Datei und benutzen tue ich Notepad++. Und da wird auch nichts aus der DB angezeigt, sondern ganz normal selbst geschriebener Text.

Und das komische ist auch, dass diese ? nur bei verlinkten Wörtern kommen, dass heißt also das wenn ich normal als Text was schreibe (in die Seite rein ohne verlinkung) dann wird das alles richtig angezeigt nur halt die verlinkungen nicht, und da die Datei auch ein Umlaut besitzt wird es wenn ich den Link mit dem Fragezeichen anklicke nicht geöffnet (also die Seite), sondern dann ist oben in der URL auch ein ? bei also bei dem Dateinamen.

0
@NikPlaysTV

Also mit "Datei auch so speichern" meinte ich, dass in deinem Editor auch utf-8 als Charset eingestellt sein muss, das sollte afaik bei Notepad++ zwar eigtl der Fall sein, kannst du aber ggf auch nachsehen unter "Settings -> Preferences -> New Document/Default Directory", dort sollte halt utf-8 eingestellt sein.

Ob es ein Link ist oder nicht spielt für das Charset in der Regel allerdings keine Rolle, das bezieht sich immer auf die komplette Datei. Meinst du mit "da die Datei auch ein Umlaut besitzt" etwa, dass die einen Umlaut im Dateinamen hat? Das sollte man nämlich unbedingt vermeiden, in Dateinamen haben Umlaute (genau wie Leerzeichen bzw allgemein Sonderzeichen) imho nichts zu suchen, verursachst nur Probleme, dort z.B. einfach statt "ä" immer "ae" benutzen usw.

Ansonsten poste doch vielleicht mal deine komplette Datei bei pastebin.com, dann könnte man ja zumindest relativ einfach überprüfen, ob es an der Datei / deren Encoding liegt, oder vielleicht an deinem lokalen Server bzw dessen Konfiguration.

0
@mastema666

Ich hab das Problem jetzt gelöst, und zwar war die Kodierung bei der header.php auf ANSI und nicht UTF-8 und deswegen funktionierte das nicht.

Danke!

0

Hast du die PHP-Datei auch UTF-8-kodiert gespeichert?

Was möchtest Du wissen?