у меня проблемы с кодировкой. здесь http://www.php.net/utf8_encode нашел кой что но решить не удалось. Помогите начинающему программисту! код: PHP: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru" lang="ru"> <head profile="http://gmpg.org/xfn/11"> <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> <title>GGLTranslator</title> <style type="text/css"><!-- html, body { font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; color:#666666; background:#FFFFFF; } .lang { color:#CC0033; } --></style> </head> <body> <?php function translate($text,$lg) { $lg = urlencode($lg); $text = urlencode($text); $link = file_get_contents("http://google.com/translate_t?langpair=$lg&text=$text"); preg_match('/<div id=result_box dir=\"ltr\">(.*?)<\/div>/', $link, $out); return $out[1]; } $f_lang=$_POST['f_lang']; $s_lang=$_POST['s_lang']; if (isset($_POST['submit'])){ foreach ($f_lang as $first_lang){echo '<b class="lang">',$first_lang,'</b>';} foreach ($s_lang as $second_lang){echo ' to <b class="lang">',$second_lang,'</b><br />';} echo translate($_POST['content'], "$first_lang|$second_lang"); } ?> <form action="<?=$_SERVER['PHP_SELF']?>" method="post"> Введите текст.<br /> <textarea name="content" rows=9 cols=50>good</textarea><br /> <select name="f_lang[]"> <option selected="selected" value="en">английский</option> <option value="ar">арабский</option> <option value="bg">болгарский</option> <option value="vi">вьетнамский</option> <option value="nl">голландский</option> <option value="el">греческий</option> <option value="da">датский</option> <option value="iw">иврит</option> <option value="id">индонезийский</option> <option value="es">испанский</option> <option value="it">итальянский</option> <option value="ca">каталанский</option> <option value="zh-CN">китайский</option> <option value="ko">корейский</option> <option value="lv">латышский</option> <option value="lt">литовский</option> <option value="de">немецкий</option> <option value="no">норвежский</option> <option value="pl">польский</option> <option value="pt">португальский</option> <option value="ro">румынский</option> <option value="ru">русский</option> <option value="sr">сербский</option> <option value="sk">словацкий</option> <option value="sl">словенский</option> <option value="tl">тагальский</option> <option value="uk">украинский</option> <option value="fi">финский</option> <option value="fr">французский</option> <option value="hi">хинди</option> <option value="hr">хорватский</option> <option value="cs">чешский</option> <option value="sv">шведский</option> <option value="ja">японский</option> </select> <select name="s_lang[]"> <option value="en">английский</option> <option value="ar">арабский</option> <option value="bg">болгарский</option> <option value="vi">вьетнамский</option> <option value="nl">голландский</option> <option value="el">греческий</option> <option value="da">датский</option> <option value="iw">иврит</option> <option value="id">индонезийский</option> <option value="es">испанский</option> <option value="it">итальянский</option> <option value="ca">каталанский</option> <option value="zh-CN">китайский</option> <option value="ko">корейский</option> <option value="lv">латышский</option> <option value="lt">литовский</option> <option value="de">немецкий</option> <option value="no">норвежский</option> <option value="pl">польский</option> <option value="pt">португальский</option> <option value="ro">румынский</option> <option selected="selected" value="ru">русский</option> <option value="sr">сербский</option> <option value="sk">словацкий</option> <option value="sl">словенский</option> <option value="tl">тагальский</option> <option value="uk">украинский</option> <option value="fi">финский</option> <option value="fr">французский</option> <option value="hi">хинди</option> <option value="hr">хорватский</option> <option value="cs">чешский</option> <option value="sv">шведский</option> <option value="ja">японский</option> </select> <input type="submit" name="submit" value="Translate" /> </form> </body> </html>
Insanoff смените аватару. Разрешены только личные фото. имя и республику можете указать в профиле Воровать плохо
в 24 строке добавь: file_get_contents("http://google.com/translate_t?langpair=$lg&text=$text&ie=UTF8"); и возвращать значение следует так: return iconv( "KOI8-R", "UTF-8", $out[1] );
"iconv" хорошая вещь. сейчас русские буквы работает! но здесь же KOI8-R! мне нужно что то универсальное, чтоб другие языки тоже работал!
писал тут "mb_detect_encoding" и оказывается что кодировка "UTF-8"!!! PHP: function translate($text,$lg) { $lg = urlencode($lg); $text = urlencode($text); $link = file_get_contents("http://google.com/translate_t?langpair=$lg&text=$text"); preg_match('/<div id=result_box dir=\"ltr\">(.*?)<\/div>/', $link, $out); $encoding = mb_detect_encoding( $out[1], "auto" ); return $encoding; } и тут тоже пробовал, везде "UTF-8"!!! с мета тегамы все в порядке. не понимаю почему не работает!?!?!? PHP: if (isset($_POST['submit'])){ foreach ($f_lang as $first_lang){echo '<b class="lang">',$first_lang,'</b>';} foreach ($s_lang as $second_lang){echo ' to <b class="lang">',$second_lang,'</b><br />';} echo translate($_POST['content'], "$first_lang|$second_lang"); $fileencoding = translate($_POST['content'], "$first_lang|$second_lang"); echo mb_detect_encoding( $fileencoding, "auto" ); }
Не доверяйте этой строке. Эта функция работает не корректно. Тем более в "auto" ("ASCII,JIS,UTF-8,EUC-JP,SJIS") ни KOI8-R или windows-1251 не входят...
нашел! PHP: http://google.com/translate_t?langpair=$lg&text=$text надо добавить Код (Text): &ie=UTF-8&oe=UTF-8 и PHP: http://google.com/translate_t?sl=$sl&tl=$tl&text=$text&ie=UTF-8&oe=UTF-8 демо работает: http://mag.az/player/opit/ascript.php