Мы разработали приложение PHP-MySQL на двух языках - английском и гуджарати. Язык Gujarati содержит символы, которые нуждаются в кодировке Unicode UTF-8 для правильного отображения.Проблема с отображением международных шрифтов с UTF-8
Приложение отлично работает на моем локальном хосте на базе Windows и на моем сервере тестирования на базе Linux в Интернете.
Но когда я передаю приложение на веб-сервер клиента (на основе linux redhat), символы Gujarati отображаются неправильно.
Я проверил необработанные данные как из баз данных (на моем веб-сервере, так и на веб-сервере клиента) - это точно так же. Однако дисплей отличается. На моем сервере шрифты отображаются отлично, но когда я пытаюсь получить доступ к копии приложения для клиента, отображение шрифта Guajarati ошибочно.
Поскольку я тестирую оба эти экземпляра установки с одного и того же компьютера и того же браузера, проблема не в несовместимости браузера или с кодом. Я считаю, что есть некоторые настройки сервера, которые необходимо выполнить, которых я пропускаю.
Помогите пожалуйста.
Благодаря
Твёрдосплавный
UPDATE
Спасибо. Мы попробовали варианты настроек apache и php, заданные членами сообщества SO. Но проблема остается.
Чтобы решить проблему, мы рассмотрели различные этапы прохождения данных.
Две базы данных (на конце клиента и на нашем конце) идентичны. В них нет никакой разницы.
Следующим шагом в этом приложении является выполнение запроса, который восстанавливает данные, создает xml-файл и сохраняет его.
Этот XML-файл затем отображается на странице PHP.
Мы обнаружили, что проблема в том, что в создаваемом XML-файле существует разница. Код, используемый для создания файла XML, приведен ниже:
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);
Любые идеи?
Благодаря
Винаяк
http://stackoverflow.com/questions/346531/utf8-problem-with-mysql-5/346552#346552 – markus