本地主机和远程服务器之间的 ICONV 编码不同
ICONV encoding differs between localhost and remote server
我在 localhosot 和远程服务器上的编码有问题。例如,当我在本地主机上选择俄语时,显示“вторник 14.07.15”(正确答案),但在远程服务器上显示“Р’С,РѕСЂРЅРёРє 14.07.15”。
在 lang.ru.php 中是 UTF-8 编码,文件如下所示:
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>";
为什么在本地主机上一切正常,而在远程服务器上编码损坏?
如果有人帮助我,我将不胜感激。最好的问候。
来自 php 的 setlocale 页面:
If locale is an array or followed by additional parameters then each array element or parameter is tried to be set as new locale until success.
调用 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 header.
中的字符集
我在 localhosot 和远程服务器上的编码有问题。例如,当我在本地主机上选择俄语时,显示“вторник 14.07.15”(正确答案),但在远程服务器上显示“Р’С,РѕСЂРЅРёРє 14.07.15”。 在 lang.ru.php 中是 UTF-8 编码,文件如下所示:
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>";
为什么在本地主机上一切正常,而在远程服务器上编码损坏? 如果有人帮助我,我将不胜感激。最好的问候。
来自 php 的 setlocale 页面:
If locale is an array or followed by additional parameters then each array element or parameter is tried to be set as new locale until success.
调用 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 header.
中的字符集