Codierung ist die Hölle auf Erden für mich. Ich muss wirklich dumm sein.PHP Twitter API Codierung Problem mit iconv() und mb_strtolower()
Ich extrahiere Hashtags von Twitter, um meine eigene Lesezeichenbibliothek zu erstellen.
$url = 'https://api.twitter.com/1.1/statuses/mentions_timeline.json';
$requestMethod = 'GET';
$getfield = '?count=200&include_rts=1&max_id=397109847755210753';
$twitterGET = new TwitterAPIExchange($settingsGET);
$twitterPOST = new TwitterAPIExchange($settingsPOST);
$jsonString = $twitterGET->setGetfield($getfield)
->buildOauth($url, $requestMethod)
->performRequest();
$json_arr = json_decode($jsonString, true);
Da viele twits in Spanisch sind, haben sie solche Zeichen wie á
Twitter von dem, was ich gelesen habe, soll in UTF-8
kodieren, aber wenn ich transformieren die Hashtag Strings Fall im immer Unicode-Zeug zu senken . Siehe Code unten:
foreach ($json_arr as $mytwit) {
$twitText=$mytwit["text"];
$twitHashTags=$mytwit["entities"]["hashtags"];
foreach($twitHashTags as $tag){
$tag=mb_strtolower($tag, 'UTF-8');
$twitKeyWords[]=$tag;
echo $tag;
}
#==>outputs: tecnolog\u00edas
}
Also die nächste i versuchen zu erraten, was Codierung ist und ich versuche, diesen Code mit allen möglichen verfügbaren Codierungen auf diesem schönen Planeten (unten nur 1 von vielen Versuchen ist):
foreach($twitHashTags as $tag){
$tag = iconv("ISO-8859-1", "UTF-8//IGNORE", $tag);
$tag=mb_strtolower($tag, 'UTF-8');
$twitKeyWords[]=$tag;
echo $tag;
}
==>outputs: tecnolog\u00e3\u00adas (even worse, thanks)
Ich habe 2 Fragen.
Wenn sein konzeptionell unmöglich, die Codierung einer Zeichenkette zu erraten, warum Twitter nicht die Codierung einer Trottel in einem Feld angeben, wie zum Beispiel
$twit["entities"]["bloody_encoding"]
?Hat jemand eine php-twitter-Codierung Beratung für Dummies?
Oh, ich habe auch versucht, diesen magischen Trick aber leider nicht funktioniert hat: How to decode Unicode escape sequences like "\u00ed" to proper UTF-8 encoded characters?
gerollt Ist die Nachricht JSON? –
Ursprünglich ja, es ist der JSON von der Twitter API, aber ich habe eine Regex verwendet, um einige Schlüsselwörter zu extrahieren, weil ich benutzerdefinierte Tags abgesehen von den regulären Hashtags verwende, wie zum Beispiel ein Tag, das "_technology" ist und sogar so '' _computer Technologie; 'Beachten Sie die' ';' 'am Ende zu fangen Tags mit Leerzeichen ... – fartagaintuxedo
Ich werde meine Frage später bearbeiten, um den Code zu zeigen, durch den ich den JSON und den Text des Twit – fartagaintuxedo