2015-07-14 2 views
0

У меня проблема с кодировкой на localhosot и удаленным сервером. Например, когда я выбираю русский langueage на localhost, покажу мне «вторник 14.07.15» (правильный ответ), но на удаленном сервере «Р'С,РѕСЂРЅРёРє 14.07.15». В lang.ru.php является UTF-8 кодировка и файл выглядит следующим образом:ICONV кодировка отличается от локального и удаленного сервера

setlocale(LC_ALL, 'ru_RU.UTF-8', 'ru_RU', 'ru', 'rus', 'russian', 'ru_RU.ISO_8859-5', 'Russian_Russia.1251'); 

$lang = array(); 

$lang['code'] = "ru"; 

$lang['PAGE_TITLE'] = 'Hello'; 

В index.php я показываю дата:

echo "<span class='daydatetime'>" . iconv('Windows-1250', 'UTF-8//TRANSLIT',strftime("%A <br> %d.%m.%y", strtotime("+ 1 days"))) . "</span>"; 

Почему в LOCALHOST все в порядке и в отдаленных сервер сломан кодирование? Буду очень признателен, если кто-нибудь поможет мне. С наилучшими пожеланиями.

ответ

1

С Setlocale страницы РНР:

Если локаль является массивом или последующими дополнительными параметрами, то каждый элемент массива или параметр пытался установить как новые настройки до успеха.

Вызов Setlocale и обеспечивая ряд районов с различными кодировками (ru_RU.UTF-8, ru_RU.ISO_8859-5) может не совпадать с ожиданием в Iconv() вызов:

string iconv (string $in_charset, string $out_charset, string $str) 

, что $ in_charset - это Windows-1250. Вы можете получить кодировку сервера,

$in_charset = nl_langinfo(CODESET); 

Также $ out_charset должен соответствовать набор символов в заголовке Content-Type.

Смежные вопросы