c ++:使用mbtowsc()解码不使用特殊字符

时间:2015-09-22 15:19:02

标签: c++ eclipse decode fedora wchar-t

post学到了很多东西(总结一下:我需要在fedora上的eclipse中将特殊字符解码为'ñ'),现在我看到我做错了或者至少这就是我的想法,因为我正在将文本解码为普通字符串,然后尝试将其从char传递给wchar_t,现在我正在使用mbtowsc()从beggining解码它。所以现在....我有另外两个疑问/问题。

我有什么: 服务器向我发送文本"$ Euroñ $"(我不知道它是如何编码的,只是字符串被编码为ANSI 1字节)。我在descr [0]中加载该文本,所以当我调试它时,一些值是:

descr[0][2]= 69 'E'
descr[0][3]= 117 'u'
descr[0][4]= 114 'r'
descr[0][5]= 111 'o'
descr[0][6]= -15 'ñ'

有了这个,我想你可以知道它是不是utf-8,我想它是。

我的目标是能够做到这样的事情:

for (int i = 0; i < total; i++)
{
    if(descr[0][i]=='a') //do things
    else if (descr[0][i]=='ñ') // do other stuff  
}

这是我无法得到的,因为ofc descr [0] [6]永远不等于'ñ'......

我试过了:

   if(descr[0][i]=='\x00D1')
   if(descr[0][i]=='\x00F1')
   if(descr[0][i]=='ñ') //this compiles but then ignores that if like it is an error
   if(descr[0][i]==L'ñ')

但是它永远不会进入任何一个ifs,所以..我应该比较descr [0] [i]知道它是否是'ñ'?

感谢。

0 个答案:

没有答案