Come posso convertire, visualizzare e memorizzare questi caratteri in PHP?

Ho questo set di codice che può leggere in modo random una pagina web e generare il titolo della pagina per l'utente, a seconda di ciò che viene inserito nel field dell'URL, potrebbe essere un sito inglese, cinese, russo o altro. Ma il problema è che continua a mostrare un text confuso: ¹ù¸ »³Ç – Google ËÑË ÷

Chiunque abbia un'idea è molto apprezzato.

<!doctype html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <?php $DOM = new DOMDocument('1.0', 'UTF-8'); if( [email protected]$DOM->loadHTMLFile( 'http://www.google.com.sg/search?hl=zh-CN&biw=1366&bih=636&q=%E9%83%AD%E5%AF%8C%E5%9F%8E&oq=%E9%83%AD%E5%AF%8C%E5%9F%8Ea&aq=f&aqi=g10&aql=undefined&gs_sm=e&gs_upl=6545l6545l0l1l1l0l0l0l0l295l295l2-1l1aa' ) ) { die('cannot load!'); } else { $XPath = new DOMXPath( $DOM ); $title = strip_tags( $XPath->query('//title')->item(0)->nodeValue ); echo $title; exit; } ?> 

Se aggiungi &oe=utf-8 alla string di query e usi utf8_decode() quando si utf8_decode() i dati, ciò dovrebbe risolvere il problema:

 $title = utf8_decode(strip_tags($XPath->query('//title')->item(0)->nodeValue)); 

Google fa un po 'di user-agent che annusa per scegliere una codifica di output appropriata. Non sono sicuro di quale sia l'agente utente DOMDocument di PHP utilizzato e quale sia la codifica dei caratteri restituiti, ma puoi forzare una codifica di output particolare utilizzando il parametro URL oe=utf-8 .

Prova a impostare utf-8 come tipo di contenuto in PHP …

 header ('Content-type: text/html; charset=utf-8'); 
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 

Dovresti restituire la codifica del contenuto utilizzata dalla pagina di origine (o convertire esplicitamente la pagina in utf-8)