wxString str = wxString::FromUTF8(v); v为中文时,str转换结果为何为空,v类型是char v[20];
当给v赋初值(为中文)时,可以正常转换
但是若v的值是别的变量赋过来的,str就不能正常转换了。
详细解释就是:char v[20]="杭州";wxString str = wxString::FromUTF8(v);
此时正常,str有值
若 char v[20];
wxString oper3=TextCtrl3->GetValue();
strncpy(v,oper3,19);
wxString str = wxString::FromUTF8(v);此时结果不正确
注:不要告诉我直接用str=oper3;来赋值,这不是本问题的目的。
理解这个问题需要wxwidgets的基础知识,还需要先画一个textctrl控件,进行相应的输入输出
补充:编译器用的是codeblocks
追问:一楼还是蛮细心的,这句话确实有问题,应改成strncpy(v,oper3.mb_str(),19);不过这不是问题所在啊这个问题确实解决了,改成strncpy(v,oper3.ToUTF8(),19); 就行,不过这问题是我另一个问题的缩写,这个问题解决了,另一个问题还是存在,方便加下q么?已经调试过了,就是wxString str = wxString::FromUTF8(v); v有中文内容的,执行了该语句以后str竟然变成空内容了
答案:我猜这个语句有问题
strncpy(v,oper3,19);
是不是改成
strncpy(v,oper3.ToUTF8(),19);
上一个:vs2008里OpenGL,总是提示没有GL/glaux.h头文件,网上查了解决方案都照做了没用。你怎么解决的额
下一个:一道C语言题