Autor |
Nachricht |
escaPe
Threadersteller
Dabei seit: 10.09.2007
Ort: <? include("home.htm") ?>
Alter: 112
Geschlecht:
|
Verfasst Mo 15.12.2008 18:10
Titel [XML + Flash] Umlaute ... |
|
|
hab folgendes Problem
ich fülle dynamische Textfelder mit Werten aus einer XML-Datei die bekommt sie wiederrum aus
einer MySQL Datenbank.
hier meine XML (php) Datei
Code: |
flash.php:
<?php
$timestamp = time();
$date = date("l",$timestamp);
if ($date=='Monday')
{$date='Montag';} else
if ($date=='Tuesday')
{$date='Dienstag';} else
if ($date=='Wednesday')
{$date='Mittwoch';} else
if ($date=='Thursday')
{$date='Donnerstag';} else
if ($date=='Friday')
{$date='Freitag';} else
if ($date=='Saturday')
{$date='Samstag';} else
if ($date=='Sunday')
{$date='Sonntag';}
$uhr = date("His",$timestamp);
$uhrbis = $uhr+50000;
include ("login.php");
$abfrage = "SELECT ID, Wochentag, TIME_FORMAT(Uhrzeit,'%H:%i') AS Uhrzeit_formatiert, Headline, Kurz, Link FROM tabelle WHERE Uhrzeit > '$uhr' AND Uhrzeit < '$uhrbis' AND Wochentag ='$date'";
echo "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n";
echo "<events>\n";
$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_object($ergebnis))
{ echo "<event ID=\"",$row->ID,"\" Wochentag=\"",$row->Wochentag,"\" Uhr=\"",$row->Uhrzeit_formatiert,"\" Headline=\"",$row->Headline,"\" Kurz=\"",$row->Kurz,"\" Link=\"",$row->Link,"\" />\n";
}
echo "</events>";
mysql_free_result($ergebnis);
mysql_close();
?>
|
ruf ich die Datei über den Browser auf werden mir ü ä ö dargestellt.
dann hohl ich mir die Daten in die FLash Datei.
hier mein AS Script
Frame 1:
Code: |
var XMLdaten = new XML();
var maxi=0;
var Anzahl=-1;
XMLdaten.ignoreWhite = true;
XMLdaten.load("flash.php");
XMLdaten.onLoad = function(success) {
XMLdaten_ID = [];
XMLdaten_Wochentag = [];
XMLdaten_Uhr = [];
XMLdaten_Headline = [];
XMLdaten_Kurz = [];
XMLdaten_Link = [];
if (success) {
for (var i=0; i<XMLdaten.firstChild.childNodes.length; i++) {
XMLdaten_ID[i] = XMLdaten.firstChild.childNodes[i].attributes.ID;
XMLdaten_Wochentag[i] = XMLdaten.firstChild.childNodes[i].attributes.Wochentag;
XMLdaten_Uhr[i] = XMLdaten.firstChild.childNodes[i].attributes.Uhr;
XMLdaten_Headline[i] = XMLdaten.firstChild.childNodes[i].attributes.Headline;
XMLdaten_Kurz[i] = XMLdaten.firstChild.childNodes[i].attributes.Kurz;
XMLdaten_Link[i] = XMLdaten.firstChild.childNodes[i].attributes.Link;
maxi++;
}
}
}
|
Frame 2:
Code: |
_root.Anzahl++;
if (_root.Anzahl >= _root.maxi) {
_root.Anzahl=0;
} |
Frame 3:
Code: |
stop();
i = _root.Anzahl;
ID.text = _root.XMLdaten_ID[i];
Wochentag.text = _root.XMLdaten_Wochentag[i];
Uhr.text = _root.XMLdaten_Uhr[i];
Headline.text = _root.XMLdaten_Headline[i];
Kurz.text = _root.XMLdaten_Kurz[i];
Link.text = _root.XMLdaten_Link[i];
countDown = function(weiter){
play();
clearInterval(timer);
}
timer = setInterval(countDown, 1000);
|
Jetzt hab ich folgendes schon probiert
encoding="UTF-8" hat leider keinen Erfolg gebracht (ich denke das hier alles läuft da die XML die Umlaute richtig darstellt)
Hab versucht die Umlaute ä ö ü Einzubetten... auch kein Erfolg (Die textfelder wurden erst garnicht angezeigt)
und auch folgendes in Flash reingesetzt:
System.useCodepage = true;
hat auch keinen erfol gebracht alle Felder wurden als undefined ausgegeben
Ich hab auch schon gelesen das man das XML Dokument selbst als UTF-8 abspeichern soll,
was aber hier nicht klappt das es ein .php Dokument ist.
Naja vielleicht hat noch jemand einen Tipp. Wäre darüber dankbar
grüße escaPe
Zuletzt bearbeitet von escaPe am Mo 15.12.2008 18:11, insgesamt 1-mal bearbeitet
|
|
|
|
|
bacon
Dabei seit: 24.10.2007
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Mo 15.12.2008 18:34
Titel
|
|
|
Der Tipp ist, die Boardsuche zu bemühen. Übrigends ist die Zeichenkodierung komplett unabhängig von der verwendeten Sprache, in diesem Falle php. Aber du hast ein einer Beziehung recht, du generierst den XML-String ja per php, und das unterstützt nunmal kein Unicode. Dafür gibts aber die Funktion <Doku Vorleseservice> http://de2.php.net/utf8-encode
Zuletzt bearbeitet von bacon am Mo 15.12.2008 18:35, insgesamt 1-mal bearbeitet
|
|
|
|
|
Anzeige
|
|
|
phihochzwei
Moderator
Dabei seit: 08.06.2006
Ort: Mülheim an der Ruhr
Alter: 46
Geschlecht:
|
Verfasst Mo 15.12.2008 18:35
Titel
|
|
|
Ist deine Datenbank denn auf UTF-8 gestellt ?
|
|
|
|
|
escaPe
Threadersteller
Dabei seit: 10.09.2007
Ort: <? include("home.htm") ?>
Alter: 112
Geschlecht:
|
Verfasst Mo 15.12.2008 18:43
Titel
|
|
|
ja ist sie. flash liest die Daten ja nicht direkt aus der datenbank sondern aus der XML
Wobei in der XML und in Flash die Daten richtig dargestellt werden.
Deswegen denk ich das es ein Flash Problem ist.
@bacon ich werde mich da sofort reinlesen
edit: sry bacon aber dein Link ist ne Ecke zu hoch für mich.
bin erst seit 4 tagen mit MySQL AS und XML zu gange.
Zuletzt bearbeitet von escaPe am Mo 15.12.2008 18:52, insgesamt 1-mal bearbeitet
|
|
|
|
|
Kilian
Dabei seit: 12.07.2005
Ort: Magdeburg
Alter: 41
Geschlecht:
|
Verfasst Mo 15.12.2008 19:11
Titel
|
|
|
Ich beweg mich jetzt auch auf dünnem Eis und mutmaße einfach mal n bisschen...
Dass deine XML Datei im Browser die Sonderzeichen korrekt darstellt könnte daran liegen, dass der Browser die Sonderzeichen aus der Codierung "ISO-8859-1" richtig ausliest. Flash hingegen nicht.
Dass dein XML-Dokument nicht als UTF-8 ausgeben kannst ist so nicht ganz korrekt.
Wenn ich den Code da richtig deute, gibst du mit der Zeile
echo "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n";
eine Codierung an.
Also lautet mein bescheidener Tipp das encoding=\"ISO-8859-1\" an dieser Stelle einfach mal durch ein encoding=\"UTF-8\" auszutauschen. Vielleicht klappt's ja dann.
Zuletzt bearbeitet von Kilian am Mo 15.12.2008 19:11, insgesamt 1-mal bearbeitet
|
|
|
|
|
Smooth-Graphics
Dabei seit: 22.05.2006
Ort: -
Alter: -
Geschlecht:
|
Verfasst Mo 15.12.2008 19:29
Titel
|
|
|
escaPe hat geschrieben: | edit: sry bacon aber dein Link ist ne Ecke zu hoch für mich. |
Was gibt es daran nicht zu verstehen? Die PHP Funktion enkodiert einfach deine eingehenden Daten in ein anderes Format (UTF- und gibt das ganze dann als UTF-8 text aus...
Kilian hat geschrieben: | Also lautet mein bescheidener Tipp das encoding=\"ISO-8859-1\" an dieser Stelle einfach mal durch ein encoding=\"UTF-8\" auszutauschen. Vielleicht klappt's ja dann. |
Könnte auch eine gute Sache sein... probier das mal aus und sag was klappt oder eben nicht klappt.
Zuletzt bearbeitet von Smooth-Graphics am Mo 15.12.2008 19:30, insgesamt 1-mal bearbeitet
|
|
|
|
|
Kilian
Dabei seit: 12.07.2005
Ort: Magdeburg
Alter: 41
Geschlecht:
|
Verfasst Mo 15.12.2008 19:38
Titel
|
|
|
Hm. Sicher?
Die Daten sind ja in der Datenbank als UTF-8 codiert, wenn man dem Screenshot glauben schenken darf. Wenn er jetzt die Anfrage auf die Datenbank macht und das Ergebnis nochmal durch die php-Methode jagt hat er UTF-8 Daten zu UTF-8 Daten konvertiert.
Also falls das überhaupt geht. Immerhin steht ja in der Funktionsbeschreibung " An ISO-8859-1 string. " als benötigter Parameter.
Das ändert aber schlussendlich nichts daran, dass in dem XML-File als "encoding" ISO-8859-1 angegeben ist. Und dieses (imaginäre) File ist es ja, was die load-Funktion in Actionscript benötigt.
Ich hasse Sonderzeichen..und Zeichensätze...und Konvertieren...
Zuletzt bearbeitet von Kilian am Mo 15.12.2008 19:39, insgesamt 1-mal bearbeitet
|
|
|
|
|
escaPe
Threadersteller
Dabei seit: 10.09.2007
Ort: <? include("home.htm") ?>
Alter: 112
Geschlecht:
|
Verfasst Fr 19.12.2008 18:01
Titel
|
|
|
also wenn ich es auf utf-8 umstelle hab ich es wie folgt
Code: | <?xml version="1.0" encoding="UTF-8"?>
<events>
<event ID="90" Wochentag="Freitag" Uhr="21:00" Headline="firdaynight" Kurz="nahcts ist es dunkel" Link="www.nachtfreitag.de" />
<event ID="89" Wochentag="Freitag" Uhr="19:00" Headline="abend event" Kurz="freitagabendnews" Link="www.freitagevent.de" />
<event ID="88" Wochentag="Freitag" Uhr="17:00" Headline="Event am Fritentag" Kurz="erst ab 17 uhr frittentag" Link="www.frittentag.de" />
<event ID="91" Wochentag="Freitag" Uhr="20:00" Headline="sonderzeichentest ���" Kurz="���" Link="" />
</events> |
was ja eigentlich nicht sein dürfte...
ich versteh das echt nicht... ich hohle utf-8 aus einer datenbank und wandel die ihn utf-8
wieso hab ich diese umlaute immernoch nicht...
edit:
okay habs nun endlich geschafft.
wie folgt hab ich die php datei geändert:
Code: |
$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_object($ergebnis))
{
echo "<event ID=\"",$row->ID,"\" Wochentag=\"",$row->Wochentag,"\" Uhr=\"",$row->Uhrzeit_formatiert,"\" Headline=\"",utf8_encode(htmlspecialchars($row->Headline)),"\" Kurz=\"",utf8_encode(htmlspecialchars($row->Kurz)),"\" Link=\"",$row->Link,"\" />\n";
} |
also einfach die variable mit
utf8_encode(htmlspecialchars($variable))
umgewandelt
Zuletzt bearbeitet von escaPe am Fr 19.12.2008 18:23, insgesamt 1-mal bearbeitet
|
|
|
|
|
|
|
|
Ähnliche Themen |
The good, the bad and the Umlaute in xml vs. flash...
XML in Flash einlesen - Umlaute verschwinden !
Flash + XML Encoding Problem (Umlaute)
umlaute in flash gehen nicht
PHP Umlaute
Umlaute in Dreamweaver
|
|