0

我该如何修复这个错误?我正在使用 smarty 模板。这是代码:

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

结果是 ���� 05, 2013 04:16:39 应该是这样 Март 05, 2013 04:16:39

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

4

3 回答 3

0

尝试使用以下 php 函数:

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

有关详细说明,请参阅http://php.net/manual/en/function.convert-cyr-string.php

于 2013-03-06T10:39:21.327 回答
0

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

setlocale('en_US.UTF8');

请咨询您的系统,您可以使用哪些语言环境以及使用何种编码。

于 2013-03-06T10:39:23.157 回答
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 数据的原因,然后修复它。

于 2013-03-06T10:44:01.000 回答