【发布时间】:2015-05-08 23:26:07
【问题描述】:
在我的应用程序中,我从本地(非 Unicode)字符集中的文件中读取字符串字段。 该字段为 10 字节,如果字符串
char str ="STRING\0\0\0\0"; // that was read from file
QByteArray fieldArr(str,10); // fieldArr now is STRING\000\000\000\000
fieldArr = fieldArr.trimmed() // from some reason array still containts zeros
QTextCodec *textCodec = QTextCodec::codecForLocale();
QString field = textCodec->ToUnicode(fieldArr).trimmed(); // also not removes zeros
所以我的问题 - 如何从字符串中删除尾随零?
附:我在调试时在“本地和表达式”窗口中看到零
【问题讨论】:
-
设置 10 个字节时,char 数组是否终止?
abcdefghij或abcdefghij\0? -
没有这个数组将只有 10 个字符,没有最后的 \0,所以我使用 QByteArray 说我的字符串最多可以有 10 个字符。
标签: c++ qt codec qbytearray