特殊文字を格納するために 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
最後に、私が欲しかったもの、つまり価値を与えてくれました。
é を é に変換するエンコーディングは何ですか? 私も処理する必要がある他の特殊な外国文字をすべて持っており、それらを期待される形式に確実にエンコードする方法を見つける必要があります...
前もって感謝します!