Не работает , а на хостинге нету попробовал сам энкодировать...\ у меня нету в php на Mandriva никаких сообщений об ошибках и я не могу понять где их можно включить нужно чтобы если нет обоих функций то чтобы хоть както сообщение энкодировалось из вин в утф ... у меня же вообще ничего не видно т.е. пустые строки приходят Мой аналог если нету iconv PHP: <?php $encoder=""; function iconvx ($from,$to,$var) { global $sd,$encoder; //$verlang=$data[0][0]; if (extension_loaded('iconv')) { if ($sd[19]=="utf-8") { $verlang=iconv($from,$to,$var); $encoder="iconv"; } } elseif (extension_loaded('mb_string')) { if ($sd[19]=="utf-8") {$verlang=mb_convert_encoding($var,$from,$to); $encoder="mb_string";} } else { $encoder="php iconv not installed"; //$verlang=win_utf8($verlang); $verlang=$var; }; return $verlang; } то что нашёл в инете function win_utf8($in_text) { $output = ""; $other[1025] = "Ё"; $other[1105] = "ё"; $other[1028] = "Є"; $other[1108] = "є"; $other[1030] = "I"; /* $other[1110] = "i";*/ $other[1031] = "Ї"; $other[1111] = "ї"; for ($i = 0; $i<191) { $output.="&#".(ord($in_text{$i})+848).";"; }else { if (array_search($in_text{$i}, $other)===false){ $output.=$in_text{$i}; }else { $output.="&#".array_search($in_text{$i}, $other).";"; } } } return $output; } function win3utf($s) { $m=strlen($s); for($i=0; $i<$m; $i++) { $c=ord($s[$i]); if ($c<=127) {$t.=chr($c); continue; } if ($c>=192 && $c<=207) {$t.=chr(208).chr($c-48); continue; } if ($c>=208 && $c<=239) {$t.=chr(208).chr($c-48); continue; } if ($c>=240 && $c<=255) {$t.=chr(209).chr($c-112); continue; } if ($c==184) { $t.=chr(209).chr(209); continue; }; if ($c==168) { $t.=chr(208).chr(129); continue; }; } return $t; } function CP1251toUTF8($string){ $out = ''; for ($i = 0; $i<strlen($string); ++$i){ $ch = ord($string{$i}); if ($ch < 0x80) $out .= chr($ch); else if ($ch >= 0xC0) if ($ch < 0xF0) $out .= "\xD0".chr(0x90 + $ch - 0xC0); // А-Я, а-п (A-YA, a-p) else $out .= "\xD1".chr(0x80 + $ch - 0xF0); // р-я (r-ya) else switch($ch){ case 0xA8: $out .= "\xD0\x81"; break; // YO case 0xB8: $out .= "\xD1\x91"; break; // yo // ukrainian case 0xA1: $out .= "\xD0\x8E"; break; // Ў (U) case 0xA2: $out .= "\xD1\x9E"; break; // ў (u) case 0xAA: $out .= "\xD0\x84"; break; // Є (e) case 0xAF: $out .= "\xD0\x87"; break; // Ї (I..) case 0xB2: $out .= "\xD0\x86"; break; // I (I) case 0xB3: $out .= "\xD1\x96"; break; // i (i) case 0xBA: $out .= "\xD1\x94"; break; // є (e) case 0xBF: $out .= "\xD1\x97"; break; // ї (i..) // chuvashian case 0x8C: $out .= "\xD3\x90"; break; // Ӑ (A) case 0x8D: $out .= "\xD3\x96"; break; // Ӗ (E) case 0x8E: $out .= "\xD2\xAA"; break; // Ҫ (SCH) case 0x8F: $out .= "\xD3\xB2"; break; // Ӳ (U) case 0x9C: $out .= "\xD3\x91"; break; // ӑ (a) case 0x9D: $out .= "\xD3\x97"; break; // ӗ (e) case 0x9E: $out .= "\xD2\xAB"; break; // ҫ (sch) case 0x9F: $out .= "\xD3\xB3"; break; // ӳ (u) } } return $out; } function win2utf($str) { $utf = ""; for($i = 0; $i < strlen($str); $i++) { $donotrecode = false; $c = ord(substr($str, $i, 1)); if ($c == 0xA8) $res = 0xD081; elseif ($c == 0xB8) $res = 0xD191; elseif ($c < 0xC0) $donotrecode = true; elseif ($c < 0xF0) $res = $c + 0xCFD0; else $res = $c + 0xD090; $utf .= ($donotrecode) ? chr($c) : (chr($res >> 8) . chr($res & 0xff)); } return $utf; }
то что на серваке нету iconv уже является чудом потому что он по-моему сейчас есть везде.. а насчет отображения ошибок могу сказать только одно - сделай в инишнике пхп display_errors = On. Дабы ошибки в браузере отображались красиво можно еще изменить html_errors = On
TrustNo1, 1) отсутствие iconv() не чудо, а PHP4, которая уже демонстрирует лень админов хостинга. 2) error_reporting(), ini_set(), .htaccess, да. Не надо трогать в php.ini без нужды.
ye.. на Мандриве пхп ставится обкромсанный... без всего спасибо/!!! ини так и не нашёл pishu error_reporting (E_ALL); - и намеренно в след строке допускаю ошибку - белый экран ini_set('error_reporting',E_ALL^E_NOTICE); - белый экран никакого сообщ про н хватающ ;