Kann nicht Angezeigt werden chinesische Zeichen in meinem PHP-code
Ich möchte die Anzeige meiner Twitter-Infos auch in meinem blog. Also ich code schreiben, um es zu bekommen.
das Problem, das ich habe ist, dass chinesische Zeichen angezeigt als "unbekannt" code.
Hier ist der test-code. Könnte jemand werfen Sie einen Blick und helfen? Dank
<html>
<title>Twitter Test</title>
<body>
<?php
function mystique_objectToArray($object){
if(!is_object($object) && !is_array($object)) return $object;
if(is_object($object)) $object = get_object_vars($object);
return array_map('mystique_objectToArray', $object);
}
define( 'ABSPATH', dirname(dirname(__FILE__)) . '/' );
require_once('/home/jun1st/jun1stfeng.com/wp-includes/class-snoopy.php');
$snoopy = new Snoopy;
$response = @$snoopy->fetch("http://twitter.com/users/show/jun1st.json");
if ($response) $userdata = json_decode($snoopy->results, true); else $error = true;
$response = @$snoopy->fetch("http://twitter.com/statuses/user_timeline/jun1st.json");
if ($response) $tweets = json_decode($snoopy->results, true); else $error = true;
if(!$error):
//for php < 5 (included JSON returns object)
$userdata = mystique_objectToArray($userdata);
$tweets = mystique_objectToArray($tweets);
$twitdata = array();
$twitdata['user']['profile_image_url'] = $userdata['profile_image_url'];
$twitdata['user']['name'] = $userdata['name'];
$twitdata['user']['screen_name'] = $userdata['screen_name'];
$twitdata['user']['followers_count'] = $userdata['followers_count'];
$i = 0;
foreach($tweets as $tweet):
$twitdata['tweets'][$i]['text'] = $tweet['text'];
$twitdata['tweets'][$i]['created_at'] = $tweet['created_at'];
$twitdata['tweets'][$i]['id'] = $tweet['id'];
$i++;
endforeach;
endif;
//only show if the twitter data from the database is newer than 6 hours
if(is_array($twitdata['tweets'])): ?>
<div class="clear-block">
<div class="avatar"><img src="<?php echo $twitdata['user']['profile_image_url']; ?>" alt="<?php echo $twitdata['user']['name']; ?>" /></div>
<div class="info"><a href="http://www.twitter.com/jun1st"><?php echo $twitdata['user']['name']; ?> </a><br /><span class="followers"> <?php printf(__("%s followers","mystique"),$twitdata['user']['followers_count']); ?></span></div>
</div>
<ul>
<?php
$i = 0;
foreach($twitdata['tweets'] as $tweet):
$pattern = '/\@(\w+)/';
$replace = '<a href="http://twitter.com/$1">@$1</a>';
$tweet['text'] = preg_replace($pattern, $replace , $tweet['text']);
$tweet['text'] = make_clickable($tweet['text']);
//remove +XXXX
$tweettime = substr_replace($tweet['created_at'],'',strpos($tweet['created_at'],"+"),5);
$link = "http://twitter.com/".$twitdata['user']['screen_name']."/statuses/".$tweet['id'];
echo '<li><span class="entry">' . $tweet['text'] .'<a class="date" href="'.$link.'" >'.$tweettime.'</a></span></li>';
$i++;
if ($i == $twitcount) break;
endforeach;
?>
</ul>
<? endif?>
?>
</body>
</html>
InformationsquelleAutor fengd | 2010-10-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den PHP UTF-8-cheatsheet ist gute Anleitung, die beim anzeigen von Inhalten verschiedene Sprachen.
InformationsquelleAutor Sarfraz
Fügen Sie diese Zeile in den header-Dateien:
Wo charset_name werden kann
gb2312
,big5
,utf-8
Überprüfen, um zu sehen, ob die Kodierung Ihrer Dateien sind utf-8 oder nicht.
Es ist utf-8. Ich habe bereits überprüft, dass 🙂
InformationsquelleAutor rahim asgari
Ich lief in ein ähnliches problem mit Elster + Snoopy. Ich hatte eine Zeile wie diese vor dem abrufen der RSS:
Sonst war ich immer Fragezeichen anstelle von Anführungszeichen, und an diesem Punkt, keine Menge Getue mit dem Zeichensatz zu beheben.
Nicht sicher, ob dies funktionieren wird, aber möchten Sie vielleicht versuchen Sie, eine "Aceept-Charset" - header, um die $rawheaders array in Snoopy.
InformationsquelleAutor Trott