PHP, Flash, XML og Unicode
Davs ...Jeg er ved at lave et script der skal parse XML til flash, denne tekst læses fra en MySQL database og kan være på alle sprog.
Jeg har lavet et hurtigt let program der gør dette:
----------------------------------------------
$dbh = mysql_query("SELECT * FROM htmltext LIMIT 1");
$result = mysql_fetch_array($dbh);
printf("<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<unicode>
<menu>
<text>".utf8_decode($result["text"])."
</text>
</menu>
</unicode>
");
----------------------------------------------
Teksten i databasen er også utf8_encode'ed og ser fint ud (i XML) hvis jeg inst. de rigtige sprog på min computer. Men i Flash MX ser det forkert ud, den skriver ikke de rigtige chars.
Nu har jeg læst og læst, prøvet flere forskellige encoders - php_mbstring.dll extensions. Det ser bare ud til utf8_encode gør dette forkert:
----------------------------------------------
$unicode = utf8_encode($text);
print "unicode: $unicode<br>\n";
$date = date("Y-m-d H:i:s");
mysql_query("INSERT INTO htmltext VALUES ( null, '$unicode', 1, 1, '$date' )");
----------------------------------------------
Alt virker egentlig fint nok, men den kan bare ikke vise det ordentligt! .... Flash coden:
----------------------------------------------
System.useCodepage = true;
var questionArchive = new Array();
myXML = new XML();
myXML.load("http://aspserver/navision/test/getunicode.php");
myXML.onLoad = retrieveXML;
stop();
----------------------------------------------
Jeg ved godt at System.useCodepage = true; ikke skal være der, men det virker hvis den er der. Men man skal kunne ændre sprog uden at skulle inst. nye ...
Det hele ligger på IIS, Win2k med PHP og MySQL ...