urlencoder.cpp 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. /*
  2. Copyright 2017 Herik Lima de Castro and Marcelo Medeiros Eler
  3. Distributed under MIT license, or public domain if desired and
  4. recognized in your jurisdiction.
  5. See file LICENSE for detail.
  6. */
  7. #include "urlencoder.h"
  8. CWF_BEGIN_NAMESPACE
  9. QString URLEncoder::decode(QByteArray url, bool replacePlusForSpace)
  10. {
  11. if (replacePlusForSpace)
  12. url = url.replace("+", " ");
  13. QUrl copy(url);
  14. copy.setQuery(copy.query(QUrl::FullyDecoded), QUrl::DecodedMode);
  15. return copy.toString();
  16. }
  17. QString URLEncoder::encode(const QByteArray &url)
  18. {
  19. QUrl copy(url);
  20. return copy.toEncoded();
  21. }
  22. QString URLEncoder::paramEncode(const QByteArray &param)
  23. {
  24. QUrl url("?p=" + param);
  25. return url.toEncoded().remove(0, 3);
  26. }
  27. QString URLEncoder::paramDecode(QByteArray param, bool replacePlusForSpace)
  28. {
  29. if (replacePlusForSpace)
  30. param = param.replace("+", " ");
  31. QUrl url("?p=" + param);
  32. url.setQuery(url.query(QUrl::FullyDecoded), QUrl::DecodedMode);
  33. return url.toString().remove(0, 3);
  34. }
  35. CWF_END_NAMESPACE