2 xyc4321 xyc4321 于 2014.11.26 21:11 提问

winform委托修改控件text为汉字时显示为问号

如题,我用spilt以逗号为间隔分开了几个字符串,最后一个字符串是汉字比如你好,调用 SetLabel(str[2].ToString());显示到控件,public void SetLabel(string text)
{
if (fs.label3.InvokeRequired)
{
SetLabelCallBack sl = new SetLabelCallBack(SetLabel);
this.Invoke(sl, new object[] { text });
}
else
{
fs.label3.Text = text;
}
}
为何输出为????

3个回答

caozhy
caozhy   Ds   Rxr 2014.11.26 23:52
已采纳

text本身怎么来的,如果是从文件读取、调用API函数得到、网络接收等,检查编码有没有处理正确。如果text是原生C#的字符串,应该不会出现这个问题,和委托无关。

xyc4321
xyc4321 找到错误了,就是在文件读取的时候用gb2312处理text,你说得对,谢谢
3 年多之前 回复
xyc4321
xyc4321 比如“11,1,你好”,把这个字符串split拆成11和1和你好,然后把你好放入label的text属性中显示为????
3 年多之前 回复
xyc4321
xyc4321   2014.11.26 21:36

求帮忙啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊

tangfengray
tangfengray   2014.11.27 13:43

感觉像是跨线程处理的地方写的不对....

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!