怎么处理混合编码的文本文件?

怎么处理混合编码的文本文件?

请问怎样把一个GB和其他encoding(比如一些日文)混合的文本转换为utf8?

最头疼的是这些字符有可能出现在同一行!

有解决办法吗?
我能想到的办法是用c写个扩展模块