我的网站有一个utf-8编码(Drupal)。
我使用 include 功能将我的页面与第三方服务集成。 但这会产生一个糟糕的结果 - 包含部分页面的错误编码。
我试试这个,但这不会给出任何结果:
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);
答案 0 :(得分:5)
include
函数不返回字符串(除非您实际在包含的文件中调用return
),它实际上包含源代码的内容。因此,如果服务器返回PHP源代码,它将在您的服务器上解释(这基本上意味着“new.velo-travel.ru”的所有者将控制您的网站:))。
另外,正如Augenfeind指出的那样,页面在windows-1251中。所以,你可能想要:
echo iconv("windows-1251", "utf-8", file_get_contents("http://new.velo-travel.ru/themes/themex/spectrum_view.php?$QUERY_STRING"))
答案 1 :(得分:1)
嗯,您所包含的页面由velo-travel.ru的网络服务器以“windows-1251”的形式发送。
所以你可能想在iconv-command中更改编码?!
答案 2 :(得分:1)
对文件中的所有输出文本和文字尝试使用mb_convert_encoding或iconv。例如:
$text = mb_convert_encoding( $oldText, 'UTF-8', "ISO-8859-1" );
或
$text = iconv( "ISO-8859-1", "UTF-8", $oldText);
希望你能让它发挥作用!