phpbar.de logo

Mailinglisten-Archive

[php] Formularverarbeitung, Zeichencodierung

[php] Formularverarbeitung, Zeichencodierung

Albin Blaschka albin.blaschka at sbg.ac.at
Don Okt 20 21:16:10 CEST 2005


Hallo!

Ich habe ein Problem mit unterschiedlichen Zeichensätzen, die ich bei 
meinem Formular (Registrierung für eine Konferenz) zu erwarten habe: Es 
sollen sich hier Leute aus u.a. Norwegen, Tschechien, Slowakei, Italien, 
Schweiz, Deutschland und Österreich anmelden. Damit bekomme ich die 
verschiedensten Zeichensätze herein - also verwende ich UTF-8, dachte 
ich mir, denn dafür ist es ja da ;-)

Also habe ich in der Seite, die das Formular ausgibt folgendes verwendet:

setlocale(LC_ALL,'de_AT.UTF-8');
header("Accept-Charset: utf-8");
iconv_set_encoding("internal_encoding", "UTF-8");
iconv_set_encoding(output_encoding, "UTF-8");
iconv_set_encoding("input_encoding", "UTF-8");

und der XHTML-Kopf-Teil:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
   <meta http-equiv="content-type" content="text/html; charset=utf-8">
</head>

und die Formular-Definition:
  <form enctype="multipart/form-data" name="registration" method="post" 
action="saveform.php" id="registration" accept-charset="utf-8">

Bei der Seite, die die Formulardaten verarbeitet, sieht das Ganze gleich 
aus, also:

setlocale(LC_ALL,'de_AT.UTF-8');
header("Accept-Charset: utf-8");

iconv_set_encoding("internal_encoding", "UTF-8");
iconv_set_encoding("output_encoding", "UTF-8");
iconv_set_encoding("input_encoding", "UTF-8");

XHTML:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<meta http-equiv="content-type" content="text/html; charset=utf-8">

Wenn ich mir dann die Daten ausgeben lasse wird z. B. aus
Čunderlík (ein C mit "Hatschek" am Anfang, ein Slowakischer Name)
?underlík

und wenn ich auf das Formular zurückgehe wird ÄŒunderlà draus...

Norwegische Sonderzeichen funktionieren...

Ich habe im Archiv der Mailingliste schon gesucht, da gab es im Jänner 
2004 einen interessanten Thread mit cyrillischen Zeichen, hat bei mir 
aber nix geholfen...
Server: Debian Sarge, Apache 1.3.33, PHP 5.0.3


Was habe ich übersehen? Was habe ich falsch gemacht?

Danke im Voraus!

Albin

-- 
---------------------------------------------------------------------
| Albin Blaschka, Mag. rer.nat
| Fachbereich für Organismische Biologie, Universität Salzburg
| Hellbrunnerstr. 34, A - 5020 Salzburg, Österreich
|
| It's hard to live in the mountains, hard, but not hopeless!
---------------------------------------------------------------------

­

php::bar PHP Wiki   -   Listenarchive