Wir haben eine PHP-MySQL-Anwendung in zwei Sprachen entwickelt - Englisch und Gujarati. Die Gujarati-Sprache enthält Symbole, die Unicode-UTF-8-Codierung für eine ordnungsgemäße Anzeige benötigen.Internationale Schriftarten Anzeige Problem mit UTF-8
Die Anwendung läuft perfekt auf meinem Windows-basierten localhost und auf meinem Linux-basierten Testserver im Internet.
Aber wenn ich die Anwendung auf den Client-Webserver (Linux Redhat basiert) übertragen, werden die Gujarati-Zeichen nicht richtig angezeigt.
Ich habe die Rohdaten von beiden Datenbanken überprüft (auf meinem Webserver und auf dem Webserver des Clients) - es ist genau das gleiche. Das Display ist jedoch anders. Auf meinem Server werden die Schriftarten perfekt angezeigt, aber wenn ich versuche, auf die Client-Kopie der App zuzugreifen, ist die Anzeige der Guajarati-Schrift falsch.
Da ich beide Installationsinstanzen von demselben Computer und demselben Browser aus teste, liegt das Problem nicht an der Browserinkompatibilität oder dem Code. Ich glaube, dass einige Servereinstellungen vorgenommen werden müssen, die ich verpasse.
Können Sie bitte helfen.
Dank
Vinayak
UPDATE
Dank. Wir haben die Apache- und PHP-Einstellungsvorschläge der Mitglieder der SO-Community ausprobiert. Aber das Problem bleibt bestehen.
Um das Problem zu durchbrechen, haben wir uns die verschiedenen Phasen angesehen, die die Daten durchlaufen.
Die beiden Datenbanken (am Ende des Clients und an unserem Ende) sind identisch. Es gibt keinen Unterschied in ihnen.
Der nächste Schritt in dieser App ist, dass eine Abfrage ausgeführt wird, die die Daten wiederherstellt, eine XML-Datei erstellt und speichert.
Diese XML-Datei wird dann mit einer PHP-Seite angezeigt.
Wir haben festgestellt, dass das Problem darin besteht, dass in der erstellten XML-Datei ein Unterschied besteht. Der Code für die Erstellung der XML-Datei verwendet wird, ist wie folgt:
function fnCreateTestXML($testid)
{
$objQuery = new clsQuery();
$objTest = new clsTest();
$setnames = $objQuery->fnSelectRecords("tbl_testsets", "setnumber", "");
$queryresultstests = $objQuery->fnSelectRecords("tbl_tests", "", "");
if($queryresultstests)
{
foreach($queryresultstests as $queryresulttest)
{
foreach($setnames as $setname)
{
//Creating Root node test and set its attribute
$doc = new DomDocument('1.0','utf-8');
$root = $doc->createElement('test');
$root = $doc->appendChild($root);
//and so on
//Saving XML on the disk
$xml_create = $doc->saveXML();
$testname = "testsxml.xml";
$xml_string = $doc->save($testname);
Irgendwelche Ideen ??
Dank
Vinayak
http://stackoverflow.com/questions/346531/utf8-problem-with-mysql-5/346552#346552 – markus