您的位置:首页 > 编程语言 > Qt开发

[Qt]有关文字编码的问题

2011-03-16 17:55 295 查看
Qt内部用Unicode保存文字,而代码、其他文件和数据库中的文字可能是其他编码,所以需要进行文字编码的转换。

QByteArray encodedString = "...";
QTextCodec *codec = QTextCodec::codecForName("KOI8-R");
QString string = codec->toUnicode(encodedString); //将字节流转换为Unicode
QString string = "...";
QTextCodec *codec = QTextCodec::codecForName("KOI8-R");
QByteArray encodedString = codec->fromUnicode(string); //将Unicode转换为字节流

一段要解码的文字可能拆成多个字节流传送,一个文字的编码可能拆在前一段字节流的尾和后一段字节流的头,这时要用解码器,解码器中记录解码的状态

QTextCodec *codec = QTextCodec::codecForName("Shift-JIS");
QTextDecoder *decoder = codec->makeDecoder();
QString string;
while (new_data_available())
{
QByteArray chunk = get_new_data();
string += decoder->toUnicode(chunk);
}
delete decoder;


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: