Вы не зашли.
Главная » PHP » Перекодировка в UTF-8
#1. DarkDaNTe Off (11)
Участник
2010.08.14 18:06
Как правильно определить неизвестную кодировку и перекодировать её в utf-8?
При перекодировании windows-1251 в utf-8 все символы изменялись на какой-то непонятный код. Например двоеточие в \u003d\u0026gt; .
Помогите.
#2. Gemorroj Off (108)
Administrator
2010.08.14 18:06
это одна из разновидностей юникода. чем пользуешься для конвертирования?
#3. DarkDaNTe Off (11)
Участник
2010.08.14 20:08
iconv
#4. DarkDaNTe Off (11)
Участник
2010.08.14 21:09
Вот как на google translate. В какой бы кодировке не скопировал туда - все нормально переводит. А у меня нет. И еще не знаешь, как сделать, чтобы на выходе получился форматированный текст? Перевод при помощи Google Translate Api.
Код:
<?php
function json2array($json){
 
   if(get_magic_quotes_gpc()){
      $json stripslashes($json);
   }
   $json substr($json1, -1);
   
   $json str_replace(array(":""{""[""}""]"), array("=>""array(""array("")"")"), $json);
 
   @eval("\$json_array = array({$json});");
 
   return $json_array;
 
}
/*
  $s_text - текст для перевода
  $s_lang - с какого языка переводим (например ru)
  $d_lang - на какой язык переводим (например en)
*/
function translate($s_text$s_lang$d_lang
$url='http://ajax.googleapis.com/ajax/services/language/translate?v=1.0'
$post='q='.urlencode($s_text).'&langpair='.$s_lang.'%7C'.$d_lang.'&key=notsupplied'
 
$c curl_init(); 
curl_setopt($cCURLOPT_URL$url); 
curl_setopt($cCURLOPT_RETURNTRANSFER1); 
curl_setopt($cCURLOPT_REFERER"http://site.ru/"); 
curl_setopt($cCURLOPT_POST1); 
curl_setopt($cCURLOPT_POSTFIELDS$post); 
$b curl_exec($c); 
curl_close($c); 
$json json2array($btrue); 
if ($json['responseStatus'] != 200)return false
return $json['responseData']['translatedText']; 
}
?>
Форматированный текст, типа если ввел
Код:
Текст
 
Текст
и перевел на английский, получилось:
Код:
Text
 
Text
Добавлено спустя    39 секунд:
PS: извиняюсь за функцию json2array - просто нету json'a нормального)
#5. Gemorroj Off (108)
Administrator
2010.08.15 11:11
текст вставь внутрь <pre></pre>
в каком месте получается этот юникод? гугл возвращает?
#6. DarkDaNTe Off (11)
Участник
2010.08.15 12:12
Я копирую текст с одного сайта, там кодировка windows-1251. Перевожу сразу оригинал - получаются кракозябры. Если изменяю кодировку при помощи iconv - появляется этот юникод.
По поводу кто возвращает сейчас скажу.
Добавлено спустя   4 минуты  30 секунд:
Этот юникод возвращает функция гугла. Еще оно <pre></pre> игнорирует.
Если без перевода, то все отлично получается, а так... странно
Добавлено спустя   6 минут  36 секунд:
а может это из-за аналога функции json?
#7. Gemorroj Off (108)
Administrator
2010.08.15 12:12
может быть, именно такой юникод используется в JS
#8. DarkDaNTe Off (11)
Участник
2010.08.15 12:12
Хм, а как тогда перевести гуглом, чтобы все получилось?
#9. Gemorroj Off (108)
Administrator
2010.08.15 12:12
DarkDaNTe написал:
Я копирую текст с одного сайта, там кодировка windows-1251. Перевожу сразу оригинал - получаются кракозябры.
я не понимаю где именно проблема. iconv дает это, либо апи гугла?
#10. DarkDaNTe Off (11)
Участник
2010.08.15 13:01
Апи гугла
Добавлено спустя   4 минуты  47 секунд:
Да, точно, апи гугла.
Может не в utf-8 перекодировать?
Страниц: 1 2 Все
Главная
WEB
PunBB Mod v0.6.2
0.014 s