这很容易通过以下将一个字符串变成QTextCodec *
:如何在Qt中明确获取文本编码系统?
char *str = "UTF-8";
QTextCodec *codec = QTextCodec::codecForName(str);
但我们可以做逆?例如:
QTextCodec *codec = QTextCodec::codecForName("System");
但我又怎么能codec
成字符串,让我知道了编码系统为UTF-8/UTF-16或其他?
这很容易通过以下将一个字符串变成QTextCodec *
:如何在Qt中明确获取文本编码系统?
char *str = "UTF-8";
QTextCodec *codec = QTextCodec::codecForName(str);
但我们可以做逆?例如:
QTextCodec *codec = QTextCodec::codecForName("System");
但我又怎么能codec
成字符串,让我知道了编码系统为UTF-8/UTF-16或其他?
但是,如何将编解码器转换为字符串,以便我知道编码系统是UTF-8/UTF-16或其他?
通过使用QTextCodec::name() const
。
char *str = "UTF-8";
QTextCodec *codec = QTextCodec::codecForName(str);
QByteArray name = codec->name(); // "UTF-8"
啊〜我明白你的意思了。这个对我有用。但如果我使用“System”而不是像“UTF-8”这样的显式字符串提供'codecForName()',它只会返回“System”...可以告诉我究竟是什么? – wlnirvana 2013-05-05 08:53:48
@wlnirvana你只是想获得当前语言环境的编解码器? – cmannett85 2013-05-05 09:29:24
基本上是的。当我试图获得系统编解码器时遇到了这个问题。但是当我试图解决它时,我想知道是否有一个通用的方法来解决这个问题。 – wlnirvana 2013-05-06 00:42:12
当然,反过来是'QString name = QTextCodec :: NameForCodec(codec);'?你只是想获得当前语言环境的编解码器吗? – cmannett85 2013-05-04 08:42:01
@ cmannett85这是Qt 5的新方法吗?我没有在Qt4文档中看到'NameForCodec'。 – wlnirvana 2013-05-04 13:24:44
Err ..它不存在,我指出你的反例并不是真正的反例。 – cmannett85 2013-05-04 13:52:01