由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - php DOM parse 中文乱码问题 (转载)
相关主题
用react的试过中文么?What's the problem with 'ascii' codec? (转载)
sucks (转载)how to encoding UTF-8 to hex
求教, python 对于很奇怪的字符的encoding 怎么处理?文本显示问题
有点挠头How to Parsing function in haskell?
C语言怎么打印出温度的符号?parsing bibliography and sorting (转载)
推荐个html parser的库?问java api的问题
顺便问一个CreateFile问题 (转载)parsing file in node: js or python ?
python 问题请教一个parser的问题
相关话题的讨论汇总
话题: nodevalue话题: cols话题: set话题: item话题: print
进入Programming版参与讨论
1 (共1页)
r**********d
发帖数: 510
1
【 以下文字转载自 BuildingWeb 讨论区 】
发信人: rslgreencard (IS), 信区: BuildingWeb
标 题: php DOM parse 中文乱码问题
发信站: BBS 未名空间站 (Mon Jan 13 23:20:10 2014, 美东)
我请教一个问题。
我想把 http://q.stock.sohu.com/app2/rpsholder.up?code=&sd=2013-7-13&ed=&type=date&dir=1&p=1
上的数据用 php DOM parse, 然后写道数据库中。 但
sohu encoding是gbk, php dom parse 后的encoding是ascii, 我 百度的很多, 试了
一些方法,都不能显示。
我现在只希望能在mysql 用utf8 ecoding 里显示中文。 然后我用 csmar数据做一些分
析。
各位大牛请指点迷津。我叮当包子相报。
$con = mysql_connect($host, $user, $pass);

if (!$con) {
echo "Could not connect to server\n";
trigger_error(mysql_error(), E_USER_ERROR);
} else {
echo "Connection established\n";
}
$ok = mysql_select_db("insider", $con);
echo mysql_get_server_info() . "\n";
# Set character_set_results
mysql_query("SET character_set_results=utf8", $con);
# Set character_set_client and character_set_connection
mysql_query("SET character_set_client=utf8", $con);
mysql_query("SET character_set_connection=utf8", $con);
for ($i = 1; $i< 2; $i++)
{
#$page = "http://vip.stock.finance.sina.com.cn/q/go.php/vInvestConsult/kind/nbjy/index.phtml?p=".$i;
$page = "http://q.stock.sohu.com/app2/rpsholder.up?code=&sd=2013-7-13&ed=&type=date&dir=1&p=".$i;
$content = file_get_contents($page );
$bodyStart = strpos($content, '') + 8;
$bodyStartEnd = strpos($content, "
") ;

$body = "".substr($content, $bodyStart, $bodyStartEnd - $
bodyStart). "
";
#$meta = '';
$body = $body;

$dom = new DOMDocument();
//load the html
$html = $dom->loadHTML($body);
header('Content-Type: text/html; charset=gbk');
print $body ;
//discard white space
$dom->preserveWhiteSpace = false;
//the table by its tag name
$tables = $dom->getElementsByTagName('table');
//get all rows from the table
$rows = $tables->item(0)->getElementsByTagName('tr');

// loop over the table rows
foreach ($rows as $row)
{
// get each column by tag name
$cols = $row->getElementsByTagName('td');
// print the values
echo "encloding".mb_detect_encoding($cols->item(4)->nodeValue);
#print mb_convert_encoding($cols->item(0)->nodeValue, 'gbk', 'UTF8'
).'
';
#print mb_convert_encoding( $cols->item(3)->nodeValue, 'gbk', 'UTF8'
).'
';
ini_set('mbstring.substitute_character', "none");
echo mb_convert_encoding($cols->item(1)->nodeValue, 'UTF-8', 'UTF-8')
;
print mb_convert_encoding($cols->item(0)->nodeValue,'UTF-8', 'gbk'
).'
';
print mb_convert_encoding($cols->item(1)->nodeValue, 'UTF-8', 'ascii
' ).'
';
print iconv ( "ascii", "UTF-8", $cols->item(3)->nodeValue ).' />';
print iconv ( "gbk", "UTF-8", $cols->item(4)->nodeValue).'
';
print $cols->item(5)->nodeValue.'
';
print $cols->item(6)->nodeValue.'
';
print $cols->item(7)->nodeValue.'
';

print $cols->item(9)->nodeValue.'
';

}
}
n*****t
发帖数: 22014
2
几点意见供参考:
1、mysql table encoding
2、php curl 记得可以设 accept
3、mb_convert 很不靠谱
记得不是狠清楚,你试试看吧

【在 r**********d 的大作中提到】
: 【 以下文字转载自 BuildingWeb 讨论区 】
: 发信人: rslgreencard (IS), 信区: BuildingWeb
: 标 题: php DOM parse 中文乱码问题
: 发信站: BBS 未名空间站 (Mon Jan 13 23:20:10 2014, 美东)
: 我请教一个问题。
: 我想把 http://q.stock.sohu.com/app2/rpsholder.up?code=&sd=2013-7-13&ed=&type=date&dir=1&p=1
: 上的数据用 php DOM parse, 然后写道数据库中。 但
: sohu encoding是gbk, php dom parse 后的encoding是ascii, 我 百度的很多, 试了
: 一些方法,都不能显示。
: 我现在只希望能在mysql 用utf8 ecoding 里显示中文。 然后我用 csmar数据做一些分

1 (共1页)
进入Programming版参与讨论
相关主题
请教一个parser的问题C语言怎么打印出温度的符号?
怎么把 integer 转为 multi-byte integer format?推荐个html parser的库?
大家来看看这个纯Javascript实现的QR二维码生成器顺便问一个CreateFile问题 (转载)
encode high cardinality categorical featurespython 问题
用react的试过中文么?What's the problem with 'ascii' codec? (转载)
sucks (转载)how to encoding UTF-8 to hex
求教, python 对于很奇怪的字符的encoding 怎么处理?文本显示问题
有点挠头How to Parsing function in haskell?
相关话题的讨论汇总
话题: nodevalue话题: cols话题: set话题: item话题: print