3

特殊文字を格納するために REST API を呼び出す方法を知っている人はいますか? 私は次の方法を試しました:

  • 特別な取り扱いは一切ありません。Parse は #@$ などの特殊文字を処理できることに気付いたので、これを試してみることにしました。これは不運に終わります。サンプルのカール クエリは次のとおりです。

curl -X POST \ -H "X-Parse-Application-Id: appId" \ -H "X-Parse-REST-API-Key: apikey" \ -H "Content-Type: application/json;" \ -d '{"testString":"é"}' \ https://api.parse.com/1/classes/TestObject

これは、「{"code":107,"error":"オブジェクトに無効な utf8 文字列が含まれていました"}」という結果を返します。

  • 次に、post 呼び出しに charset ヘッダーを追加すると思いました。

curl -X POST \ -H "X-Parse-Application-Id: appId" \ -H "X-Parse-REST-API-Key: apikey" \ -H "Content-Type: application/json; charset=utf-8" \ -d '{"testString":"é"}' \ https://api.parse.com/1/classes/TestObject

これは、最初の試行と同じ結果を返します。

  • さて、それから手動でUTF-8にエンコードしようとしました。

curl -X POST \ -H "X-Parse-Application-Id: appId" \ -H "X-Parse-REST-API-Key: apikey" \ -H "Content-Type: application/json; charset=utf-8" \ -d '{"testString":"%C3%A9"}' \ https://api.parse.com/1/classes/TestObject

これで行が作成されますが、値は é ではなく文字どおり %C3%A9 です。ヘッダーの文字セット値を取り出してみましたが、どちらも役に立たなかったようです。

  • データブラウザを介して、すべてが完璧に機能していることに気付きました。そこで、js クエリを監視して、db が何を送信しているかを確認します。ブラウザが é に対して é を送信していることが判明しました。それから私はカールを変えて、多田、私はそれを手に入れました。

curl -X POST \ -H "X-Parse-Application-Id: appId" \ -H "X-Parse-REST-API-Key: apikey" \ -H "Content-Type: application/json; charset=utf-8" \ -d '{"testString":"é"}' \ https://api.parse.com/1/classes/TestObject

最後に、私が欲しかったもの、つまり価値を与えてくれました。

é を é に変換するエンコーディングは何ですか? 私も処理する必要がある他の特殊な外国文字をすべて持っており、それらを期待される形式に確実にエンコードする方法を見つける必要があります...

前もって感謝します!

4

1 に答える 1