Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/254.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php smarty模板中的非拉丁字符显示࿽࿽࿽࿽;使用getDateLocal时_Php_Encoding_Smarty - Fatal编程技术网

Php smarty模板中的非拉丁字符显示࿽࿽࿽࿽;使用getDateLocal时

Php smarty模板中的非拉丁字符显示࿽࿽࿽࿽;使用getDateLocal时,php,encoding,smarty,Php,Encoding,Smarty,如何修复此错误?我正在使用smarty模板。以下是代码: writeTR2($lngstr['page_visitordetails_startdate'], getDateLocal($lngstr['language']['date_format_full'], $i_rSet1->fields["startdate"])); 结果是���� 05, 2013 04:16:39 应该是这样的Мааτ052013 04:16:39 我的数据库和网站都使用UTF-8,在其他地方我没有这个

如何修复此错误?我正在使用smarty模板。以下是代码:

writeTR2($lngstr['page_visitordetails_startdate'], getDateLocal($lngstr['language']['date_format_full'], $i_rSet1->fields["startdate"]));
结果是���� 05, 2013 04:16:39 应该是这样的Мааτ052013 04:16:39

我的数据库和网站都使用UTF-8,在其他地方我没有这个问题,一切都很好。我是说西里尔文字表现得很好。但是当我使用这个函数getDateLocal时,有一个问题。当我将编码更改为西里尔文(ISO-8859-5)时 该功能显示我的性格,但整个网站显示不正确。
请帮帮我

尝试使用以下php函数:

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

有关更多说明,请参阅。

我不知道具体的
getDateLocale
,但如果它使用系统的区域设置系统,则需要以适当的编码设置区域设置:

setlocale('en_US.UTF8');

请咨询您的系统您有哪些可用的区域设置以及编码方式。

� 始终指示在UTF-8环境中显示非UTF-8字符。您必须将
getDateLocal()
的输出更改为UTF-8,或者动态转换:

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

不过,这是一个肮脏的修复程序-最好找出
getDateLocal()
输出ISO-8859-5数据的原因,并修复它。

setlocale('ru_ru.UTF8')已经完成,但我只对特定的smarty函数getDateLocale有问题。在其他地方,setlocale工作正常。我找不到该函数的任何官方引用。它是做什么的?这是一个链接,它返回smarty Template中的完整日期我在我的系统中使用多语言,英语版本使用ISO-8859-1。如果我转换,一切都会转换,对吗?@Firdavs我不知道你说的“多语言”是什么意思?无论如何,
iconv()
调用将只转换getDateLocal()内容。您肯定在输出端使用UTF-8