Здравствуйте! У меня в php.ini : default_charset = "utf-8" Страницы вывожу с: <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> При использовании функции : PHP: <?php // функция превода текста с кириллицы в траскрипт function encodestring($st) { // Сначала заменяем "односимвольные" фонемы. $st=strtr($st,"абвгдеёзийклмнопрстуфхъыэ_", "abvgdeeziyklmnoprstufh'iei"); $st=strtr($st,"АБВГДЕЁЗИЙКЛМНОПРСТУФХЪЫЭ_", "ABVGDEEZIYKLMNOPRSTUFH'IEI"); // Затем - "многосимвольные". $st=strtr($st, array( "ж"=>"zh", "ц"=>"ts", "ч"=>"ch", "ш"=>"sh", "щ"=>"shch","ь"=>"", "ю"=>"yu", "я"=>"ya", "Ж"=>"ZH", "Ц"=>"TS", "Ч"=>"CH", "Ш"=>"SH", "Щ"=>"SHCH","Ь"=>"", "Ю"=>"YU", "Я"=>"YA", "ї"=>"i", "Ї"=>"Yi", "є"=>"ie", "Є"=>"Ye" ) ); // Возвращаем результат. return $st; } ?> Сам файл с функцией в UTF-8 При переводе "ИвановИП", получаю "ESeeebe�e�eeEE". Как быть? [/php]
В какой кодировке сохранен сам скрипт? Приходит ли от сервера заголовок "Content-Type:" ? что в нем написано?
Скрипт в UTF-8. В браузере клиента : HTML: <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="author" content="FireHead Group"> <title>Active Directory Web Interface</title> </head>
Вставь в начало скрипта который выводит перевод(его тоже надо сохранить в utf-8): header("Content-Type: text/html; charset=utf-8"); Если не поможет то надо смотреть какой заголовок приходит с сервера (например c помощью плагина для FF HTTP Live headers ). Возможно хостер прикручивает свой заголовок с кодировкой или перекодирует страницу перед выдачей.
Header: POST /ad/?module=user&form=new&action=create HTTP/1.1 Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/xaml+xml, application/vnd.ms-xpsdocument, application/x-ms-xbap, application/x-ms-application, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */* Referer: http://localhost:82/ad/?module=user&form=new Accept-Language: ru Content-Type: application/x-www-form-urlencoded UA-CPU: x86 Accept-Encoding: gzip, deflate User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022) Host: localhost:82 Content-Length: 174 Connection: Keep-Alive Cache-Control: no-cache Cookie: PHPSESSID=pbq82dkj6b6oocqmr4ccmeptp3
Так тебе строка header("Content-Type: text/html; charset=utf-8"); не помогла? Это ты выложил заголовки которые ты посылаешь серверу, надо посмотреть те, которые он высылает тебе Там обычно в первой строке должно присутствовать 200 OK
Ага не то вставил. Вот что от сервера: HTTP/1.1 200 OK Date: Wed, 02 Dec 2009 10:45:53 GMT Server: Apache/2.2.6 (Win32) PHP/5.2.10 X-Powered-By: PHP/5.2.10 Expires: Thu, 19 Nov 1981 08:52:00 GMT Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Pragma: no-cache Content-Length: 3252 Keep-Alive: timeout=5, max=100 Connection: Keep-Alive Content-Type: text/html; charset=utf-8
Ну для начала почитать описание strtr, а потом спросить себя - а сколько же символов в понятиях PHP, который не поддерживает нативно UTF-8, занимает одна русская буква в кодировке UTF-8.