[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;
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;
相关文章推荐
- qt 文字编码问题 防止乱码
- QT 多语言 字库 编码 文字方向相关问题
- Qt 编码问题QTextCodec
- 使用 Request.QueryString 接受参数时,跟编码有关的一些问题
- 使用 Request.QueryString 接受参数时,跟编码有关的一些问题
- QSettings的编码问题(QTBUG15543、QTBUG19552)
- 有关 Python 2 和 Sublime Text 中文 Unicode 编码问题的分析与理解
- QT学习之编码问题
- Request.QueryString 接受参数时,跟编码有关的一些问题
- 彻底弄懂Qt的编码(汉字乱码问题及相关函数作用)
- qt中解决不同平台间编码问题以及登录窗口写法
- Qt 编码问题QTextCodec
- 使用 Request.QueryString 接受参数时,跟编码有关的一些问题
- 使用 Request.QueryString 接受参数时,跟编码有关的一些问题
- Qt 编码问题QTextCodec
- 在asp.net页面中的一些有关编码的问题
- 有关struts.xml的地址和中文编码乱码问题
- Qt读取文件中文编码问题
- 在asp.net页面中的一些有关编码的问题
- 使用 Request.QueryString 接受参数时,跟编码有关的一些问题