再次求教,关于打字机效果在安卓手机上的实现

请把代码粘贴在这里


```
之前为实现一个打字机效果,在论坛里发过帖子,在版主的帮助下在电脑上成功实现了该效果。
但是……今天把它弄到手机上,结果运行的时候发现,和电脑上的不同,会先显示一个乱码,下一次才会变成中文


以下是我用的方法,拜托各位高手,帮忙看下,问题出在哪里
//获取原字符串总共多少字//content为定义的字符串,contentLength为多少字
void GamePlotSummary::getcontentlength()
{
     int length = content.length();
     CCLOG("length = %d", length);
     int i = 0;  
     while(i < length)  
     {  
         char ch = content.c_str()*;  
 //重点在这里  
 //中文在ASCII码中是-127~0  
         if (ch > -127 && ch< 0)  
         {  
 //这里为什么+=3呢  
 //因为一个中文占3个字节  
             i+=3;  
         }  
         else  
         {  
             i++;  
         }  
         contentLength++;  
     }
}



//根据长度获取要现实的字符串
std::string GamePlotSummary::getContentByLength(int length)
{
     if (length >= contentLength)  
     {  
         return content;  
     }  
     int i = 0;  
     int index = 0;  
     while(index < length)  
     {  
         char ch = content.c_str()*;  
 //这里上面说过了  
         if (ch > -127 && ch < 0)  
         {  
             i+=3;  
         }  
         else  
         {  
             i++;
         }  
         index++;
     }  


 //截取string  
     std::string str = content.substr(0, i);  
     return str;  
}



//更新显示多少字//wordCount 为当前显示的字数
void GamePlotSummary::updateStr(float cTime)
{
     if (wordCount > contentLength)  
     {
         return;
     }


     wordCount++;
     pLabel->setString(getContentByLength(wordCount).c_str()); 
}
```


最后还是在老大的帮助下,参考http://blog.sina.com.cn/s/blog_939c22bc0101bn40.html*这篇文章搞定了*

不要沉啊!求高手拯救:9:

编码应该使用的是utf8吧,中文就是占3个字节

我上面就是这么写的啊,只是在手机上不对哇。我怀疑是判断是否是中文的地方手机上和WIN32有区别

转换成UTF-16每个字符两个字节

char ch = content.c_str();
这里蛋疼了,顺便问个蛋疼的问题,为什么不是记录当前读取的下标,下一次再去取下一个即可?

额,原来是复制粘贴出现错误了

char ch = content.c_str();
这里再android中char为无符号型,所以比如你取值应该是-27的字符,android中就会转换为299
所以需要做下转换
int ch = content.c_str();
if(ch > 128)
{
ch = ch - 256;
}

4楼正解。。。。。。。。。。。。。。。。。