diff --git a/src/util/string.cpp b/src/util/string.cpp
index 49aff4a1f91776b3997d05222af4b9575149dc59..0a7ab5c3a406856b31507bb79541cd8ecd940dd5 100644
--- a/src/util/string.cpp
+++ b/src/util/string.cpp
@@ -83,6 +83,13 @@ std::wstring utf8_to_wide(const std::string &input)
 	return out;
 }
 
+#ifdef __ANDROID__
+// TODO: this is an ugly fix for wide_to_utf8 somehow not working on android
+std::string wide_to_utf8(const std::wstring &input)
+{
+	return wide_to_narrow(input);
+}
+#else
 std::string wide_to_utf8(const std::wstring &input)
 {
 	size_t inbuf_size = (input.length() + 1) * sizeof(wchar_t);
@@ -102,6 +109,7 @@ std::string wide_to_utf8(const std::wstring &input)
 
 	return out;
 }
+#endif
 #else
 std::wstring utf8_to_wide(const std::string &input)
 {
@@ -126,7 +134,6 @@ std::string wide_to_utf8(const std::wstring &input)
 }
 #endif
 
-
 // You must free the returned string!
 // The returned string is allocated using new
 wchar_t *narrow_to_wide_c(const char *str)