summaryrefslogtreecommitdiff
path: root/platform/default
diff options
context:
space:
mode:
Diffstat (limited to 'platform/default')
-rw-r--r--platform/default/codecvt/codecvt30
-rw-r--r--platform/default/jni/string_conversion.hpp17
-rw-r--r--platform/default/utf.cpp11
3 files changed, 24 insertions, 34 deletions
diff --git a/platform/default/codecvt/codecvt b/platform/default/codecvt/codecvt
deleted file mode 100644
index 8d21e82348..0000000000
--- a/platform/default/codecvt/codecvt
+++ /dev/null
@@ -1,30 +0,0 @@
-#pragma once
-
-// This is a minimal polyfill that'll only work exactly for how we use codecvt
-
-#include <string>
-#include <boost/locale/encoding_utf.hpp>
-
-namespace std {
-
-template <typename Codecvt, typename Elem = wchar_t>
-class wstring_convert {
-public:
- static_assert(std::is_same<Elem, typename Codecvt::Elem>::value, "type mismatch");
-
- inline std::basic_string<Elem> from_bytes(const string& str) {
- return boost::locale::conv::utf_to_utf<Elem>(str);
- }
-
- inline string to_bytes(const std::basic_string<Elem>& str) {
- return boost::locale::conv::utf_to_utf<char>(str);
- }
-};
-
-template <typename E>
-class codecvt_utf8_utf16 {
-public:
- using Elem = E;
-};
-
-} // namespace std
diff --git a/platform/default/jni/string_conversion.hpp b/platform/default/jni/string_conversion.hpp
new file mode 100644
index 0000000000..66df539f4e
--- /dev/null
+++ b/platform/default/jni/string_conversion.hpp
@@ -0,0 +1,17 @@
+#pragma once
+
+// This file replaces the default implementation in jni.hpp.
+
+#include <mbgl/util/utf.hpp>
+
+namespace jni {
+
+inline std::u16string convertUTF8ToUTF16(const std::string& str) {
+ return mbgl::util::convertUTF8ToUTF16(str);
+}
+
+inline std::string convertUTF16ToUTF8(const std::u16string& str) {
+ return mbgl::util::convertUTF16ToUTF8(str);
+}
+
+} // namespace jni
diff --git a/platform/default/utf.cpp b/platform/default/utf.cpp
index 8bc8ea7314..f0f9d3e67a 100644
--- a/platform/default/utf.cpp
+++ b/platform/default/utf.cpp
@@ -1,13 +1,16 @@
#include <mbgl/util/utf.hpp>
-#include <locale>
-#include <codecvt>
+#include <boost/locale/encoding_utf.hpp>
namespace mbgl {
namespace util {
-std::u16string utf8_to_utf16::convert(const std::string& utf8) {
- return std::wstring_convert<std::codecvt_utf8_utf16<char16_t>, char16_t>().from_bytes(utf8);
+std::u16string convertUTF8ToUTF16(const std::string& str) {
+ return boost::locale::conv::utf_to_utf<char16_t>(str);
+}
+
+std::string convertUTF16ToUTF8(const std::u16string& str) {
+ return boost::locale::conv::utf_to_utf<char>(str);
}
} // namespace util