2013-03-06 3 views
0

Как исправить эту ошибку? Я использую шаблон smarty. Вот код:Нелатинские символы в шаблоне smarty, показывающие при использовании getDateLocal

writeTR2($lngstr['page_visitordetails_startdate'], getDateLocal($lngstr['language']['date_format_full'], $i_rSet1->fields["startdate"])); 

В результате 05, 2013 4:16:39 Должно быть, как это 05 Март, 2013 04:16:39

Моя база данных и веб-сайт с помощью UTF-8, в других местах у меня нет этой проблемы, все хорошо показывает. Я имею в виду, что кириллицы хороши. Но когда я использую эту функцию getDateLocal, возникает проблема. Когда я меняю кодировку на кириллицу (ISO-8859-5) , эта функция показывает мне характер, но целые сайты показывают неправильную. Помогите мне пожалуйста.

ответ

0

всегда указывает на символы, отличные от UTF-8, отображаемые в среде UTF-8. Вы должны были бы либо изменить выход getDateLocal() «s в UTF-8, или конвертировать на лету:

$dateLocalConverted = iconv("ISO-8859-5", "UTF-8", getDateLocal($lngstr['language']['date_format_full'], $i_rSet1->fields["startdate"])); 

это грязный исправить, хотя - это было бы лучше, чтобы выяснить, почему getDateLocal() выводит ISO-8859 -5 и исправить это.

+0

Я использую multilanguage в своей системе, английская версия использует ISO-8859-1 , Если я конвертирую, все будет преобразовано, верно? –

+0

@Firdavs Я не знаю, что вы подразумеваете под «многоязычным»? Во всяком случае, вызов 'iconv()' будет преобразовывать только содержимое getDateLocal(). Вы определенно используете UTF-8 на стороне вывода –

0

попробовать с помощью следующей функции PHP:

convert_cyr_string (string $str , string $from , string $to) 

Обратитесь к http://php.net/manual/en/function.convert-cyr-string.php для более подробного объяснения.

+0

Это не то, что я ищу ... –

0

Я не знаю, getDateLocale в частности, но если он использует систему локали системы, вы должны установить локаль в соответствующей кодировке:

setlocale('en_US.UTF8'); 

Обратитесь к системе, какие локали у вас есть в наличии и в какая кодировка.

+0

setlocale ('ru_RU.UTF8') уже сделано, но у меня проблема только с особой функцией gety getDateLocale. В других местах setlocale работает нормально. –

+0

Я не могу найти официальную ссылку на эту функцию. Что оно делает? – deceze

+0

Здесь ссылка http://www.smarty.net/docsv2/en/language.modifier.date.format возвращает полную дату в шаблоне smarty –

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