特殊字符编码问题(PHP)

时间:2017-09-07 17:47:51

标签: php encoding utf-8 character-encoding character

我在PHP应用程序中正确显示特殊字符时遇到困难。特殊字符显示为“?”在多数情况下。我相信这与cURL操作有关。

我们将内容存储在我们通过cURL返回的内容管理系统中。当我通过CMS返回我们的内容时,特殊字符将更改为 。当我在这些键上使用mb_convert_encoding时,它会将特殊字符显示为“?”。如何正确显示特殊字符?任何帮助将不胜感激!

内容管理系统:

  • 苏黎世机场

结果输出 - 使用cURL(在mb_convert_encoding之前):

  • Z richAirport

页面输出(在mb_convert_encoding之后):

  • Z?rich Airport

代码:

    $curl = curl_init();
    curl_setopt($curl,CURLOPT_HTTPHEADER,array(
        'Content-type:application/json'
    ));
    curl_setopt($curl,CURLOPT_POST,true);
    curl_setopt($curl,CURLOPT_POSTFIELDS,json_encode(array(
        'contentKeyName' => $prefix,
        'langCode' => $language,
        'rollSetiForExperiments' => false
    )));
    curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);
    curl_setopt($curl,CURLOPT_TIMEOUT,10);
    curl_setopt($curl,CURLOPT_URL,$endpoint);

    $response = new stdClass();
    $response->response = curl_exec($curl);
    $response->headers = curl_getinfo($curl);
    $response->error_number = curl_errno($curl);
    $response->error_message = curl_error($curl);

    curl_close($curl);

    $result = $response->response; // If I echo $result, Special Characters are outputted as �

    $result = mb_convert_encoding($result,'utf-8'); // Changes � to ? 

期望输出:

  • 苏黎世机场

0 个答案:

没有答案