質問編集履歴

3 jsonの出力のみ表示

southern_flavor

southern_flavor score 53

2017/06/06 14:59  投稿

JSON・PHPが文字化けもしくは何も表示されない
SJISのJSONをechoで書き出したとき、文字化けもしくは、何も表示されなくなってしまいます。
(現在のコードは何も表示されてない)
mb_convert_encodingの第二引数のところをUTF8にすると文字化けします。
これらを正常な状態で表示させる方法はありますか?
文字コードはSJISのままにしたいです。
追記:まずはSJISではなくても大丈夫です。
UTF-8でも同じように文字化けしてしまいます。
```lang-php  
 
こちらはUTF-8でのコードになります。  
$jsonのみ出力です  
header('Content-type: application/json; charset=utf-8');  
 
//エラー出力強制  
ini_set( 'display_errors', 1 ); // エラーを画面に表示(1を0にすると画面上にはエラーは出ない)  
//すべてのエラー表示  
error_reporting( E_ALL );  
 
$url = 'test.json';  
$json = file_get_contents($url);  
$json = mb_convert_encoding($json, 'UTF8', 'ASCII,JIS,UTF-8,EUC-JP,SJIS-WIN');  
$arr = json_decode($json, true);  
 
if ($arr === null) {  
   return;  
} else {  
       echo ''.$json.'';  
}  
```  
```lang-php
header('Content-type: application/json; charset=utf-8');
$url = 'test.json';
$json = file_get_contents($url);
$json = mb_convert_encoding($json, 'UTF8', 'ASCII,JIS,UTF-8,EUC-JP,SJIS-WIN');
$arr = json_decode($json, true);
if ($arr === null) {
   return;
} else {
   $json_count = count($arr['testjson']);
   for ($i = $json_count - 2; $i < 2; $i++) {
       echo '<p>'.$arr['testjson'][$i]['text'].'</p>';
       echo '<p>'.$arr['testjson'][$i]['url'].'</p>';
       echo ''.$json.'';
   }
}
```
```lang-json
{
   "testjson": [{
           "text": "ほじほじほじ",
           "url": "hogehoge.hoge"
       },
       {
           "text": "ほじ",
           "url": "hogehoge.hoge"
       }
   ]
}
```
  • PHP

    24602 questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

  • JSON

    1492 questions

    JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

2 PHPのコードを修正しました

southern_flavor

southern_flavor score 53

2017/06/05 18:28  投稿

JSON・PHPが文字化けもしくは何も表示されない
SJISのJSONをechoで書き出したとき、文字化けもしくは、何も表示されなくなってしまいます。
(現在のコードは何も表示されてない)
mb_convert_encodingの第二引数のところをUTF8にすると文字化けします。
これらを正常な状態で表示させる方法はありますか?
文字コードはSJISのままにしたいです。
追記:まずはSJISではなくても大丈夫です。
UTF-8でも同じように文字化けしてしまいます。
```lang-php
header('Content-type: application/json; charset=utf-8');  
 
$url = 'test.json';
$json = file_get_contents($url);
$json = mb_convert_encoding($json, 'SJIS-WIN', 'ASCII,JIS,UTF-8,EUC-JP,SJIS-WIN');
$json = mb_convert_encoding($json, 'UTF8', 'ASCII,JIS,UTF-8,EUC-JP,SJIS-WIN');
$arr = json_decode($json, true);
if ($arr === null) {
   return;
} else {
   $json_count = count($arr['testjson']);
   for ($i = $json_count - 2; $i < 2; $i++) {
       echo '<p>'.$arr['testjson'][$i]['text'].'</p>';
       echo '<p>'.$arr['testjson'][$i]['url'].'</p>';
       echo ''.$json.'';  
   }
}
```
```lang-json
{
   "testjson": [{
           "text": "ほじほじほじ",
           "url": "hogehoge.hoge"
       },
       {
           "text": "ほじ",
           "url": "hogehoge.hoge"
       }
   ]
}
```
  • PHP

    24602 questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

  • JSON

    1492 questions

    JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

1 SJISと指定していましたが、UTF-8でも大丈夫です

southern_flavor

southern_flavor score 53

2017/06/05 12:54  投稿

SJISのJSON・PHPが文字化けもしくは何も表示されない
JSON・PHPが文字化けもしくは何も表示されない
SJISのJSONをechoで書き出したとき、文字化けもしくは、何も表示されなくなってしまいます。
(現在のコードは何も表示されてない)
mb_convert_encodingの第二引数のところをUTF8にすると文字化けします。
これらを正常な状態で表示させる方法はありますか?
文字コードはSJISのままにしたいです。
 
追記:まずはSJISではなくても大丈夫です。  
UTF-8でも同じように文字化けしてしまいます。  
```lang-php
$url = 'test.json';
$json = file_get_contents($url);
$json = mb_convert_encoding($json, 'SJIS-WIN', 'ASCII,JIS,UTF-8,EUC-JP,SJIS-WIN');
$arr = json_decode($json, true);
if ($arr === null) {
   return;
} else {
   $json_count = count($arr['testjson']);
   for ($i = $json_count - 2; $i < 2; $i++) {
       echo '<p>'.$arr['testjson'][$i]['text'].'</p>';
       echo '<p>'.$arr['testjson'][$i]['url'].'</p>';
   }
}
```
```lang-json
{
   "testjson": [{
           "text": "ほじほじほじ",
           "url": "hogehoge.hoge"
       },
       {
           "text": "ほじ",
           "url": "hogehoge.hoge"
       }
   ]
}
```
  • PHP

    24602 questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

  • JSON

    1492 questions

    JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

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