hi there!
ich habe ein kleines problemchen mit meiner seite, die ich gerade programmiere. konkret geht es darum, dass ich alles in utf8 codiert haben will.
ich nutze einen ubuntu 9.04 server mit php 5.2 und mysql 5.0 auf apache 2.2. meine datenbanken sind als "utf8-unicode-ci" codiert, in der .htaccess habe ich
AddDefaultCharset utf-8
vermerkt, der html-header meiner seiten beginnt wie folgt:
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
selbst meine formulare habe ich mittels
<form method="POST" action="write" accept-charset="utf-8">
für utf8 fit gemacht.
trotzdem spinnt hier alles rum :( sprich: wenn ich daten über dieses utf8-codierte formular in die utf8-codierte db schreibe, kommen diese anschliessend wieder ausgelesenen daten auf der utf8-codierten webseite als iso-8859 an.
sprich: ich schreibe ins formularfeld ein "ü" und bei der ausgabe erwartet mich ein tolles "?", das sich erst durch manuelle browserumstellung auf iso-8859 wieder in ein "ü" verwandelt. ergo kommt beim browser kein utf-8, sondern iso an.
wie kann ich dieses problem lösen, ohne dass ich einen iso-to-utf-wrapper für jede ein- und ausgabe der datenbank dranhauen muss?
was ich will ist, dass ALLES über utf-8 läuft. sprich, dass die formulardaten vom browser als utf8 versendet werden und auch in dieser codierung in der db landen. das gleiche soll dann auch für den umgekehrten weg gelten...
nur: WIE?
ich habe schon diverse tutorials etc gelesen, die alle die absolution in dieser frage versprachen, aber nirgendswo habe ich eine brauchbare antwort auf diese frage finden können :(