[原创]QTextCodec::codecForName()的问题

问题:
如下代码片断,
int main(…)
{
QTextCodec* gbkCodec=QTextCodec::codecForName("GBK");
Q_CHECK_PTR(gbkCodec);
 
QCoreApplication a(…);
 
 
return a.exec();
 
}
 
gbkCodec返回null。换成 除cn, jp, ko之外的编码,如 windows-1258,可以成功返回 codec! 如果不用codecForName,换成codecForLocale(),也将返回指向 System的codec,没有问题。检查codec plugins,确认有 qcncodecs.dll。
 
解决方案:
将 codecForName()一句移到 QCoreApplication a(…)一句之后。
 
原因不详。发现是内置的codec 这样是可以返回的,但plugin codec不能放在这个位置。
 
Environment: Qt 4.1.1

Leave a Reply

Your email address will not be published.