GuzzleHTTP 6.0を使用してAPIサーバーからデータを取得します。何らかの理由で、APIサーバが受け取る要求がUTF-8でエンコードされていない場合、ü,ö,ä,ß
の文字は文字化けしています。Guzzle HTTPリクエストで文字化けが発生する
デフォルトのシステムとデータベースは、UTF-8
がエンコードされています。
私は、これが出力されるRequestOptions
にtrue
debug
に設定:
User-Agent: GuzzleHttp/6.2.1 curl/7.47.0 PHP/7.0.22-0ubunut0.16.04.1 Content-type: text/xml;charset="UTF-8" Accept: text/xml" Cache-Control: no-cache Content-Length: 2175 * upload completely sent off: 2175 out of 2175 bytes <HTTP/1.1 200 OK <Server:Apache:Coyote/1.1 <Content-Type: text/xml; charset=utf-8 <Transfer-Encoding: chunked <Date: Thu, 23 Nov 2017 9:34:12 GMT <* Connection #5 to host www.abcdef.com left intact
IはUTF-8にexplicitilyヘッダの内容を設定しています。
$headers = array(
'Content-type' => 'text/xml;charset="utf-8"',
'Accept' => 'text/xml',
'Content-length' => strlen($requestBody),
);
私も.. mb_detect_encoding()
方法
mb_detect_encoding($requestBody,'UTF-8',true); // returns UTF-8
私はこの問題をデバッグするのですかそれ以上のアイデアを使ってテストしてみました?