You have (and need) a global instance of CCharsetConverter, so there's really no penalty at all to holding the currently static members in that class.  By keeping them all static, and wrapping them all in another layer of indirection (CInnerConvertor) you're just making the code look more complicated than it needs to be.