rendered paste bodydiff --git a/src/lib/lightmediascanner_db_common.c b/src/lib/lightmediascanner_db_common.cindex e7a4b0c..a8ec54a 100644--- a/src/lib/lightmediascanner_db_common.c+++ b/src/lib/lightmediascanner_db_common.c@@ -2,6 +2,9 @@ #include <stdlib.h> #include <stdio.h> #include <string.h>+#include <iconv.h>+#include <limits.h>+#include <locale.h> #if SQLITE_VERSION_NUMBER < 3003009 int@@ -127,7 +130,16 @@ lms_db_bind_text(sqlite3_stmt *stmt, int col, const char *text, int len) int r; if (text)- r = sqlite3_bind_text(stmt, col, text, len, SQLITE_STATIC);+ {+ char *locale = setlocale(LC_ALL, "");+ iconv_t cd = iconv_open("UTF-8", locale);+ char *inbuf = strdup(text);+ size_t inbytesleft = strlen(inbuf);+ char outbuf[PATH_MAX];+ size_t outbytesleft = PATH_MAX;+ iconv(cd, &inbuf, &inbytesleft, (char **) &outbuf, &outbytesleft);+ r = sqlite3_bind_text(stmt, col, outbuf, len, SQLITE_STATIC);+ } else r = sqlite3_bind_null(stmt, col);