2009-10-19 4 views
0

На моем сайте есть кодировка utf-8 (Drupal).проблемы с кодировкой (php)

Я использую Включает функцию для интеграции моей страницы с сторонним сервисом. Но это дает плохой результат - плохое кодирование для включения части страницы.

я попробовать это, но это не дает никакого результата:

iconv("ASCII","utf-8",include("http://new.velo-travel.ru/themes/themex/spectrum_view.php?$QUERY_STRING")) 

до этого я использую mb_detect_encoding знать, кодирующий

это включен файл:

$url = 'http://young.spectrum.ru/cgi-bin/programs_form.pl'; 
$params = $_GET; 
if ($params){ 
    $url .= '?'; 
    foreach ($params as $key => $value) $url .= '&' . $keys . '=' . urlencode($value); 
} 

#$content = file_get_contents($url); 
echo iconv("cp-1251","utf-8", $url); 

ответ

5

Функция include не возвращает строку (если вы действительно не вызываете return во включенный файл), она буквально включает содержимое в исходный код. Поэтому, если сервер возвращает исходный код PHP, он будет интерпретироваться на вашем сервере (что в основном означает, что владельцы «new.velo-travel.ru» будут иметь контроль над вашим сайтом :)).

Кроме того, как указал Аугенфэйнд, страница находится в окнах-1251. Итак, вы, возможно, захотите:

echo iconv("windows-1251", "utf-8", file_get_contents("http://new.velo-travel.ru/themes/themex/spectrum_view.php?$QUERY_STRING")) 
1

Ну, страница, которую вы включили, поставляется как «windows-1251» веб-сервером velo-travel.ru.

Возможно, вы захотите изменить кодировку в своей команде iconv?

1

Попробуйте mb_convert_encoding или iconv для всех выводимых текстов и литералов в вашем файле. Например:

$text = mb_convert_encoding($oldText, 'UTF-8', "ISO-8859-1"); 

или

$text = iconv("ISO-8859-1", "UTF-8", $oldText); 

Упование вы получите это работает!

Смежные вопросы