-2

json_encode を使用しているときに奇妙な動作に直面しました。

編集:Apacheを使用してdebianでphp 5.4.4を使用しています。これはphpファイルの唯一の行であり、他には何もなく、コマンドラインphpで動作しています。基本的にはこのようなものです。

<?

echo json_encode("B}c5KUKv;?Ch?D_{>wFU\ZV&ScMPorb;brVu&~N:!p.Sz~^xO#<<JOkK_j~u:WH1");

それでおしまい。これが chrome html ソース コードの結果です。

"B}c5KUKv;?Ch?D_{>wFU\\ZV&ScMPorb;brVu&~N:!p.Sz~^xO#<

[解決済み] : コンテンツ タイプの問題だったようです。とにかく、ヘッダーを追加するだけです('Content-Type: application/json; charset=utf-8'); そしてすべてが正常に戻ります。

ありがとう Lekensteyn この質問に答えてください。答えとして受け入れます。


には、必要な変更がいくつかありますcustomers.h。コード内のコメントを参照してください。

#pragma once;

#include <string>        // including string as it is referenced in the struct

struct customer
{
    std::string name;    // using std qualifer in header
    customer *next;
};

// moved to below the struct, so that customer is known about
void print_customers(customer &head);

#include "customers.h"その後、 に入る必要がありcustomers.cppます。

using namespace stdヘッダーファイルに書き込んでいないことに注意してください。これはstd、含まれているものに名前空間をインポートするためcustomer.hです。詳細については、次を参照してください: Why is include "using namespace" into a header file a bad idea in C++?

4

2 に答える 2

1

ええ、私もそれを誤動作させることはできません

http://codepad.org/TVuExbm0

于 2013-10-21T20:45:21.007 に答える
0

PHP 5.5.4 を使用してこれを複製することはできません

期待どおりに機能し、文字列全体の json エンコードされた表現を出力します。

古いバージョンの PHP を使用している場合は、オプションを json_encode に渡す必要があるかもしれません。詳細はマニュアルに記載されています。

于 2013-10-21T20:44:45.633 に答える