file_get_contents 显示 utf-8 的字符,如问号
file_get_contents show characters of utf-8 like question marks
$str = "https://www.google.com/search?q=sd";
echo file_get_contents($str);
我尝试使用函数 file_get_contents 从 google 加载页面,但 utf-8 字符的输出显示像问号。
我已经尝试了这里介绍的所有可能性:
file_get_contents() converts UTF-8 to ISO-8859-1
但是问题还是没有解决。
非常感谢任何帮助。
更新:
我通过Google看到问题存在,其他站点内容显示正确。
试试这个代码对我有用..
<?php
$abc = array('http' => array('header' => 'Accept-Charset: UTF-8, *;q=0'));
$some_context = stream_context_create($abc);
$filename = "https://www.google.com/search?q=sd";
echo file_get_contents($filename, false, $some_context);
?>
[php]
//charset.php?case=1
//charset.php?case=2
//charset.php?case=3
$case = isset($_GET['case']) ? $_GET['case'] : 1;
if( !in_array($case,range(1,3)) ) $case = 1;
if( $case==1 ) {
header("Content-type: text/html; charset=tis-620"); //http://htmlpurifier.org/docs/enduser-utf8.html
$str = "https://www.google.co.th/search?q=sd";
}
if( $case==2 ) {
header("Content-type: text/html; charset=ISO-8859-1");
$str = "https://www.google.de/search?q=sd";
}
if( $case==3 ) {
header("Content-type: text/html; charset=ISO-8859-9");
$str = "https://www.google.com.tr/search?q=sd";
}
$data = file_get_contents($str);
echo $data;
[/php]
如您所见... php header 中的正确字符集是解决方案
$str = "https://www.google.com/search?q=sd";
echo file_get_contents($str);
我尝试使用函数 file_get_contents 从 google 加载页面,但 utf-8 字符的输出显示像问号。
我已经尝试了这里介绍的所有可能性: file_get_contents() converts UTF-8 to ISO-8859-1 但是问题还是没有解决。
非常感谢任何帮助。
更新:
我通过Google看到问题存在,其他站点内容显示正确。
试试这个代码对我有用..
<?php
$abc = array('http' => array('header' => 'Accept-Charset: UTF-8, *;q=0'));
$some_context = stream_context_create($abc);
$filename = "https://www.google.com/search?q=sd";
echo file_get_contents($filename, false, $some_context);
?>
[php]
//charset.php?case=1
//charset.php?case=2
//charset.php?case=3
$case = isset($_GET['case']) ? $_GET['case'] : 1;
if( !in_array($case,range(1,3)) ) $case = 1;
if( $case==1 ) {
header("Content-type: text/html; charset=tis-620"); //http://htmlpurifier.org/docs/enduser-utf8.html
$str = "https://www.google.co.th/search?q=sd";
}
if( $case==2 ) {
header("Content-type: text/html; charset=ISO-8859-1");
$str = "https://www.google.de/search?q=sd";
}
if( $case==3 ) {
header("Content-type: text/html; charset=ISO-8859-9");
$str = "https://www.google.com.tr/search?q=sd";
}
$data = file_get_contents($str);
echo $data;
[/php]
如您所见... php header 中的正确字符集是解决方案