2016-11-11 36 views
0

我有一個字符集問題。
在本地主機上一切正常,但現在在遠程服務器上,我看到奇怪的字符替換其他像à或è。我已經讀過它是一個字符集問題,我認爲這個問題可以是我的php.ini(我不能編輯它)。
爲了解決它,我已經嘗試了很多東西:
我設置從本地到遠程服務器的字符集問題

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


ini_set('default_charset', 'UTF-8'); 

在PHP,

AddDefaultCharset utf-8 

。 htaccess文件,
如果我使用utf8_encode字符串l etters被替換爲或類似的,如果我離開它沒有做任何事情的信件是
還有另一種方法來解決這個問題,我還沒有找到?

對不起,我忘了說:串是從其他網站通過的file_get_contents(我使用Yandex的API)

這裏取回的一些代碼:

$yandex = 'https://dictionary.yandex.net/api/v1/dicservice.json/lookup?key=my_api_key&lang=it-it&text=attualità'; 

// get json from this page 
$object = json_decode(file_get_contents($yandex)); 
$syns_array = array(); 
$type = ''; 
// if the word exists 
if (!empty($object->def) && $object->def != FALSE && $object->def != NULL) 
{ 
    $type = $object->def[0]->tr[0]->pos; 
    $rows = $object->def[0]->tr; 
    // if there're synonyms 
    if (!empty($rows) && $rows != FALSE && $rows != NULL) 
    { 
     foreach ($rows as $row) 
     { 
      array_push($syns_array, $row->text); 
      // if there're more rows with syns 
      if (!empty($row->syn) && $row->syn !== FALSE && $row->syn !== NULL) 
      { 
       foreach ($row->syn as $syns_obj) 
       { 
        array_push($syns_array, $syns_obj->text); 
       } 
      } 
     } 
    } 
} 

// I echo my synonyms from the array 
foreach($syns_array as $syn) { 
    echo $syn; 
} 
+1

你是如何檢索這些字符的?它們是硬編碼在文件中還是從數據庫中檢索?再見。 – Federkun

+2

檢查文件是否保存在utf-8中...如何將文件傳輸到服務器? –

+0

我沒有使用數據庫,我從Yandex站點的file_get_contents中獲取字符串 –

回答

1

我忘了說我在這些字符串上使用了mb_strtolower。用strotolower代替它的問題就解決了......對不起

相關問題