что бы strftime() показывала на русском.Автор оригинала: SiMM
> Как правильно установить локаль utf8 ?
А зачем?
[m]mbstring[/m]
4) идём по УРЛам и узнаём, что под виндой нет "ru_RU", есть "rus" и "russian".Tip: Windows users will find useful information about locale strings at Microsoft's MSDNwebsite. Supported language strings can be found at http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_crt_language_strings.asp and supported country/region strings at http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_crt_country_strings.asp. Windows systems support the three letter codes for country/region specified by ISO 3166-Alpha-3, which can be found at this Unicode website .
Спасибо Тони конечно за совет, но то, так как ты предлагаешь проблему пытались решить в течении дня. Твое решение не работает - по какой то из причин ни директиваАвтор оригинала: tony2001
элементарно.
по шагам:
...
Можно и так, но результат все тот же.Типа:PHP:setlocale(LC_TIME,"russian.65001");
iconv("cp1251", "UTF-8", strftime("%d %b. %Y %H:%M", $timestamp))
<?
print "[".setlocale(LC_ALL, "Russian_Russia.65001")."]<br>";
echo strftime("%A %d %b. %Y %H:%M");
?>
<?
print "[".setlocale(LC_ALL, "Russian_Russia.65001")."]<br>";
echo strftime("%A %d %b. %Y %H:%M");
?>
<?
print "[".setlocale(LC_ALL, "Russian_Russia.65001")."]<br>";
echo iconv("cp1251", "UTF-8", strftime("%A %d %b. %Y %H:%M"));
?>
бывает когда рееестр правится для фотошопа. единственное что могу предложить.Автор оригинала: Max_kmv
Что-то вообще ничего не понимаю...
... и почему после установки локали LC_ALL на Russian_Russia.65001, LC_CTYPE все равно показывает LC_CTYPE=English_United States.1252
Сдается мне, что msvcrt просто не умеет делать CTYPE для UTF-8.E:\>php -r "echo str_replace(';', \"\n\", setlocale(LC_ALL, 'rus_RUS.65001'));"
LC_COLLATE=Russian_Russia.65001
LC_CTYPE=Russian_Russia.1251
LC_MONETARY=Russian_Russia.65001
LC_NUMERIC=Russian_Russia.65001
LC_TIME=Russian_Russia.65001
E:\>more test6.cpp
E:\>g++ test6.cppPHP:#include <iostream> #include <clocale> int main() { const char* loc = NULL; loc = setlocale(LC_ALL, "rus_RUS.65001"); std::cout << (loc ? loc : "NULL") << "\n"; loc = setlocale(LC_CTYPE, "rus_RUS.65001"); std::cout << (loc ? loc : "NULL") << "\n"; loc = setlocale(LC_CTYPE, "rus_RUS.1251"); std::cout << (loc ? loc : "NULL") << "\n"; }
E:\>a
LC_COLLATE=Russian_Russia.65001;
LC_CTYPE=C;
LC_MONETARY=Russian_Russia.65001;
LC_NUMERIC=Russian_Russia.65001;
LC_TIME=Russian_Russia.65001
NULL
Russian_Russia.1251
E:\>
Мда... Но, все же главный вопрос таки остается - почему не выводится после смены локали на russian_Russian.UTF-8 дата на русском. так как показал 440hz.Автор оригинала: Profic
Сдается мне, что msvcrt просто не умеет делать CTYPE для UTF-8.
зы. ощущение, что выводит правильно, но не в UTF-8, а в 1251. вечером поковыряю.Автор оригинала: Max_kmv
Мда... Но, все же главный вопрос таки остается - почему не выводится после смены локали на russian_Russian.UTF-8 дата на русском. так как показал 440hz.