回答編集履歴

3 加筆修正

m6u

m6u score 10236

2018/12/14 13:11  投稿

curlで取得したデータのエンコーディングがphp側と異なっている可能性はありませんか?
703バイトのデータを受信できているので、表示するためのエンコーディングが合ってないだけのような気もしますが。
例えば、応答がUTF-8Nで返ってくるけど、ブラウザの表示はShift_JISだったりするとか。
> $xml[0]でvar_dumpすると一文字だけ格納されています
バイト列の0バイト目だから、それが文字として認識できるデータであれば文字になりますよね。
至極当たり前。
至極当たり前。
[PHP: mb_internal_encoding - Manual](http://php.net/manual/ja/function.mb-internal-encoding.php)
php.iniの設定に関わらず実行時にエンコーディングを設定する方法。
```php
mb_internal_encoding("UTF-8");
```
を冒頭に挿入するとどうなりますか。
2 加筆修正

m6u

m6u score 10236

2018/12/14 12:40  投稿

curlで取得したデータのエンコーディングがphp側と異なっている可能性はありませんか?
703バイトのデータを受信できているので、表示するためのエンコーディングが合ってないだけのような気もしますが。
例えば、応答がUTF-8Nで返ってくるけど、ブラウザの表示はShift_JISだったりするとか。  
> $xml[0]でvar_dumpすると一文字だけ格納されています
バイト列の0バイト目だから、それが文字として認識できるデータであれば文字になりますよね。
至極当たり前。
1 加筆修正

m6u

m6u score 10236

2018/12/14 12:39  投稿

curlで取得したデータのエンコーディングがphp側と異なっている可能性はありませんか?
703バイトのデータを受信できているので、表示するためのエンコーディングが合ってないだけのような気もしますが。
703バイトのデータを受信できているので、表示するためのエンコーディングが合ってないだけのような気もしますが。
> $xml[0]でvar_dumpすると一文字だけ格納されています
バイト列の0バイト目だから、それが文字として認識できるデータであれば文字になりますよね。
至極当たり前。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る