2017-11-01 26 views
1

私はLaravel "誤ってエンコードされた不正なUTF-8文字"を修正する方法はありますか?

return \Response::json($users, 200, array('Content-Type' => 'application/json;charset=utf8'), JSON_UNESCAPED_UNICODE); 
を持っている私は、私は私のUserモデルに次のような方法で取得し、JSON追加属性として返すようにしようとしたが、私は、コントローラ内

"message": "Malformed UTF-8 characters, possibly incorrectly encoded", 
    "exception": "InvalidArgumentException", 
    "file": "/var/www/timetool/vendor/laravel/framework/src/Illuminate/Http/JsonResponse.php", 

コード

/** 
    * @return string 
    */ 
    public function getAvatarImageAttribute($value) 
    { 

     if($this->hasMedia('avatar')) { 
      $image = $this->getMedia('avatar'); 
      $img = \Intervention\Image\ImageManagerStatic::make($image[0]->getPath())->encode('data-url'); 
     } 
     elseif (isset($this->blob->dokument)) { 
      $img = 'data:image/jpeg;base64,'. base64_encode($this->blob->document); 
     } else { 
      $img = ''; 
     } 

     return $img; 
    } 

を得続けます

+0

この場合@fefeに対する回答はありますか? –

答えて

0

私はUTF8文字だけを必要とするJSONに関連していると思っています。あなたのBLOBには無効な文字が含まれている可能性があります。 utf8_encode($ img)を試してください。 http://at2.php.net/manual/en/function.utf8-encode.php あなたのコントローラではただ戻ります。 Laravelはあなたのために適切なjson応答を構築します。

関連する問題