如何修复此错误?我正在使用smarty模板。这是代码:
writeTR2($lngstr['page_visitordetails_startdate'], getDateLocal($lngstr['language']['date_format_full'], $i_rSet1->fields["startdate"]));
结果是 05,2013 04:16:39 应该像这样Март05,201304:16:39
我的数据库和网站都使用UTF-8,在其他地方我没有这个问题一切都很好。我的意思是西里尔字符显示良好。但是当我使用这个函数getDateLocal时会出现问题。当我将编码更改为西里尔语时(ISO-8859-5) 该功能显示我的性格,但整个网站显示不正确。 请帮帮我。
答案 0 :(得分:0)
尝试使用以下php函数:
convert_cyr_string ( string $str , string $from , string $to )
有关详细说明,请参阅http://php.net/manual/en/function.convert-cyr-string.php。
答案 1 :(得分:0)
我特别不知道getDateLocale
,但如果它使用系统的语言环境系统,则需要以适当的编码设置语言环境:
setlocale('en_US.UTF8');
向您的系统咨询您可用的语言环境以及采用的编码方式。
答案 2 :(得分:0)
始终表示在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数据的原因,然后解决这个问题。