Sorun enjekte UTF8 bir Win 1255 kodlanmış web içine JSONP kodlanmış

0 Cevap php

Ben diğer şeyler arasında benim PHP sunucudan bazı jsonp veri almak ve barındırma gömme sitesinde json nesnenin içerdiği metni göstermesi gerektiğini, bir JS pasajı gibi web sitelerinde gömülü bir üçüncü taraf hizmeti geliştiriyorum.

JQuery kullanıyorum, bu yüzden aşağıdaki getJSON istek sorunu.:

$.getJSON("http://localhost/php/server.php?a=gfs"+"&callback=?",function(Obj) {
                doSomething(Obj);
            });

ve PHP tarafında (server.php) ben var:

<?php
        header('Content-Type: text/javascript; charset=utf8');
 $retval = file_get_contents('../scripts/file.json');
 //change to json php
        $callback = $_GET['callback'];
        echo $callback . '(' . $retval . ')';      
?>

Bu FF mükemmel çalışır, ancak gömme sitesi file.json bulunan metin anlamsız görüntülendiğini anlamda, utf8 daha farklı bir şey, özellikle Windows 1255 (İbranice) web sayfası ile kodlanmış zaman IE başarısız. Elbette anlamsız gibi sayfa görünüm kalanını yapar iken, json görüntülenen metinle sorunu "düzeltmeler" unicode (tarayıcıda değil, kaynak) web kodlama değiştirme ... Ben benzer bir sorun vardı FF, ben php script başlığı (...) satır ilave önce.

Ben ne yapmalıyım? O FF ve IE içinde iyi çalışır Herkes neden biliyor mu? Böyle başlığında (...) özellikle IE için gerekli bir ek bir tanımı var mı?

Constraints: I have no control on the embedding website file.json has to be encoded in utf8 (that's how my db works) The same code needs to be able to handle both utf8 encoded pages and non utf8 pages

0 Cevap