by mbirth » Wed Aug 17, 2016 11:07 pm
I currently have this problem with Subsonic running in a Tomcat-on-Alpine-Linux-Docker-Image. I tried all things I could find: Setting LANG, LC_ALL, etc. … setting -Dfile.encoding=utf-8, setting -Dsqlfile.charset=utf-8 and nothing worked.
I believe it's a problem with Alpine Linux not having any locale support installed. So the LANG and LC_ALL definitions have no effect and Subsonic falls back to iso-8859-something-support. When looking at the database-logfile, I can see that it e.g. stores "zurück" as "zur\ufffd\ufffdck" and U+fffd is "used to replace an incoming character whose value is unknown or unrepresentable". It looks like it's trying to utf8_encode the already-utf8-string and the control characters ("ü" = 0xc3 0xbc) can't be encoded again. Or something like that.
However, it's 2016 and Subsonic should use UTF-8 in any case and everywhere without trying to convert things around.