在这里使用fromAscii()缺少什么?

时间:2013-04-29 05:59:40

标签: qt code-snippets codec asciiencoding

我有一些奇怪的问题,不知道如何解决。

  

设置: - Qt4.8.2和Win7平台以及IDE VS2010。

让我们假设: A.dll,包含下面描述的代码片段& B.dll,c.dll等是其他依赖的dll,它们在构建机器(TFS服务器)中使用构建脚本一起构建。直到今天都没有问题,我们注意到A.dll在使用fromAscii时遇到了一些问题( ) 如下面所描述的。但是,为了从IDE重现此错误,我无法得到同样的问题......

问题陈述:  fromAscii(),关于它取决于什么?

代码段: -

char cache[257] = "I just want to save this now here!!!";  // For example I've simplified it here after my analysis.

 QString sStore = Qstring::fromAscii(cache,-1);

“sStore”打印时没有任何结果......

我觉得有些构建设置已经造成了这个问题。但是,找不到相同的内容。我继续阅读并发现了类似的内容  “请注意,尽管有名称,但此函数实际上使用QTextCodec::setCodecForCStrings()定义的编解码器将str转换为Unicode。根据编解码器,它可能不接受有效的US-ASCII (ANSI X3.4-1986)输入。如果没有设置编解码器,此函数与fromLatin1()相同。“

所以,我想了解这实际意味着什么或者我在这里缺少什么?

1 个答案:

答案 0 :(得分:0)

对我而言,这是有效的,Qt4.7 Linux:

char buf[ 256 ] = {};
int size;
// copy data to buf no null terminated
// set size, then:
QString().fromAscii((char*)&buf[0], size));

// I'm passing qstring to function

你自己尝试过大小​​吗?