この質問で見つけた関数を使用して、すべてのスペースを「%20」に置き換えるように調整しました (おそらく、はるかに効率的に実行できます!):
## Heading ##std::string Main::SpacesForWeb(std::string text) {
for (std::string::iterator it = text.begin(); it != text.end(); ++it) {
if (*it == ' ') {
*it = '%20';
}
}
return text;
}
ただし、 などの文字列に使用しようとするとLocal Live Test Server
、出力は次のようになります。
私の最後の質問は問題を扱っており、私が使用しているゲーム SDK (CryEngine2)の内部型を指していることがstring
わかりました。私はこれに対抗するために現在使用しています。string
typedef
CryString
std::string
この問題は、この変換が発生してデータがデータベースに送信された後に使用するデータベースにも反映されます。
%20
この方法で (おそらく他の URL エンコーディング記号も)使用できないのはなぜですか? また、これを機能させるにはどうすればよいですか? 自分で問題を解決するためにこれについて調査を試みましたが、関連するものは何もありませんでした。
*it = (char)"%20";
の代わりにを使用してみまし*it = (char)"%20";
たが、実際には0
、スペースを に置き換えるのではなく、文字列に表示されている を削除します%20
。