2010-11-18 13 views
4

Dieser Teil meiner JSON-Datei, die ich durch die Twitter-API erhalten:JSON von Twitter-API enthält u2019

"text": "Wissenschaftler entdecken neue Methode für Moleküle zu studieren: Queen \ u2019s Forscher die entdeckt haben, Methode für Studie ... http://bit.ly/chbweE "

Ich benutze PHP für mein Projekt.

Nach der Verwendung der json_decode-Funktion wird \ u2019 in "umgewandelt", was im Grunde wirklich nervig ist.

Ich versuchte mit $raw_json = preg_replace("u2019","'",$raw_json), aber dann die json_decode Funktion gibt NULL zurück.

Gibt es noch eine andere Möglichkeit, die \ u2019 in '?

Dank


Edit:

Dies ist, wie ich die JSON bin zu erhalten:

// create curl resource 
    $ch = curl_init(); 

    // set url 
    curl_setopt($ch, CURLOPT_URL, "http://search.twitter.com/search.json?q=from%3Agizmodo&rpp=10"); 

    //return the transfer as a string 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 

    // $output contains the output string 
    $raw_json = curl_exec($ch); 

    // close curl resource to free up system resources 
    curl_close($ch); 
+0

geben Sie bitte die Methode/Funktion, die beschreibt, wie Sie die Inhalte über Twitter API erhalten, in aller Kürze, ist eine Codierung Problem, viel Grund kann verstümmelten Text einführen, wie Seitencodierung – ajreal

+0

Ich benutze die Such-API ... so http://search.twitter.com/search.json – AlexBrand

+0

viele Methoden, um den Twitter, curl, fopen zu verwenden , Steckdose ... kann es genauer sein? oder geben Sie den speziellen Code für Content Grabbing ein – ajreal

Antwort

6

Dies ist wahrscheinlich ein Problem mit dem charset Sie verwenden in Ihrem Ausgabe. Wenn Sie eine HTML-Seite sind outputing, versuchen Sie den folgenden Meta-Tag zu Ihrem Kopfteil hinzugefügt:

<meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> 
+0

Danke, du bist ein Held. Sie haben keine Ahnung, wie wichtig diese Codezeile für meine Site war. Wenn Sie es überprüfen möchten, hier ist der Link: [http://blogging.net16.net/](http://blogging.net16.net/) – IchHabsDrauf

0

Sie verpassen die Regex delimiters /.../ in preg_replace. Versuchen:

$raw_json = preg_replace("/u2019/","'",$raw_json); 

Auch sein noch sicherer, würde ich ersetzen nur die Instanzen, die tatsächlich Escape-Zeichen sind:

$raw_json = preg_replace("/\\\\u2019/","\\'",$raw_json); 
+0

json_decode ($ raw_json) gibt false zurück – AlexBrand

+0

Gibt es einen Grund, warum Sie 'preg_replace' in dieser bestimmten Instanz anstelle von' str_replace' verwenden? –

+0

@beanland: Nicht wirklich, ich habe nur benutzt, was das OP in der Frage gepostet hat, aber 'str_replace' wäre in Ordnung. – casablanca

Verwandte Themen