mediatombとtaglibと文字化け

やっと分かった。taglibから文字列を取り出すときにlatin1をUTF-8に変換してしまっていることが一番の問題。まずはこれを防ぐためのパッチ。

--- src/metadata/taglib_handler.cc.orig 2008-08-23 15:14:53.000000000 +0900
+++ src/metadata/taglib_handler.cc      2008-08-23 15:12:04.000000000 +0900
@@ -119,7 +119,7 @@
     }

     if ((field != M_DATE) && (field != M_TRACKNUMBER))
-        value = String((char *)val.toCString(true));
+        value = String((char *)val.toCString(false));

     value = trim_string(value);

UTF-8で統一されておれば、これだけでも少しはマシな挙動となるだろう。あとは大量にあるCP932(Shift_JIS)のタグをどうするか。この際、UTF-8に全部変換してしまった方がいいかも。

(mediatomはDLNAサーバーです。)