Also erstmal ja ich habe gesucht!!!!
Jedoch sind leider alle Lösungsansätze irgendwie nicht möglich.
Habe das Problem des EURO-Zeichens beim FORM-Tag "INPUT" und "TEXTAREA".
Folgendes habe ich bereits gemacht:
- Der Server ist auf UTF-8 kodiert.
- Der Header der Seite ebenso.
- Die Forms besitzen accept-charset="utf-8"
- Innerhalb der PHP-Dateien ist die Codierung richtig.
Vorgehensweise
1. Eingabe Frontent ==> € funktioniert.
2. Form wird über Ajax abgeschickt.
//Umwandeln der Zeichen im Form
Xpert.AjaxLoad.Loader.prototype.getValue = function(elm)
{
var value = (typeof elm === "object")? elm.value : elm;
return encodeURIComponent(value);
}
//Wegschicken an PHP
Xpert.AjaxLoad.Loader.prototype.loadDOMAssistant = function(file, data)
{
LoadDisplay("block");
var url = file;
if(data)
{
url = url + "?" + encodeURI(data);
DOMAssistant.AJAX.post(url, returnHandler);
}
else
{
DOMAssistant.AJAX.get(url, returnHandler);
}
};
3. Umwandeln des €-Zeichens von URI auf UTF8
foreach ($_REQUEST as $key => &$value )
{
if (is_string ($value))
{
// Convert the Euro symbol
$value = str_replace('%E2%82%AC', '€', $value);
$value = rawurldecode($value);
$value = utf8_decode($value);
}
}
4. Speicherung Datenbank ==> € funktioniert
So jetzt der Umgekehrte Weg
1. Abruf der Daten
2. Umwandeln des € auf HTML-Entity
function confirmeentities($mixText)
{
if(is_array($mixText) || is_object($mixText))
{
foreach($mixText as $key => &$value)
{
$value = confirmeentities($value);
}
}
else
{
$mixText = str_replace('€', '€', $mixText);
}
return $mixText;
}
3. Umwandeln bei FORM-Feldern mit
htmlentities($strText, ENT_QUOTES);
4. Darstellung des € im Frontend als Symbol ein Quardrat mit zwei 00 und ner 80 drin. Wenn ich dieses Zeichen wieder abgespeicht und wird es als € wiedererkannt und gespeichert.
Als HTML-entity kann ich es leider nicht ausgeben, da es ja um FORM-Felder handelt.
Also evlt. kann mir einer einen Tipp geben, wie ich dieses "piep"-Zeichen herbekomm
Gruß scorbio
PS: Ich habe es als HTML-Kategoriesiert, da es sich um die Darstellung im Browser handelt