C#中文乱码,怎么解决? 20
程序如下:voidUSARTCommon_DataReceived(objectsender,SerialDataReceivedEventArgse){intmRXDC...
程序如下:
void USARTCommon_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
int mRXDCount = USARTCommon.BytesToRead;
byte[] buf = new byte[mRXDCount];
USARTCommon.Read(buf, 0, mRXDCount);
builder.Length = 0;
this.Invoke((EventHandler)(delegate
{
builder.Append(Encoding.Unicode.GetString( buf ) );
textBoxDataReceive.AppendText(builder.ToString());
}));
}
请朋友们帮忙一下,让textBoxDataReceive文本框中可以显示出正确的中文 展开
void USARTCommon_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
int mRXDCount = USARTCommon.BytesToRead;
byte[] buf = new byte[mRXDCount];
USARTCommon.Read(buf, 0, mRXDCount);
builder.Length = 0;
this.Invoke((EventHandler)(delegate
{
builder.Append(Encoding.Unicode.GetString( buf ) );
textBoxDataReceive.AppendText(builder.ToString());
}));
}
请朋友们帮忙一下,让textBoxDataReceive文本框中可以显示出正确的中文 展开
4个回答
展开全部
由于不知道你的USARTCommon.Read(buf, 0, mRXDCount);这个方法返回的byte数组是什么编码,所以你可偿试使用下面的编码进行测试。
builder.Append(Encoding.Unicode.GetString( buf ) );
改为:
builder.Append(Encoding.UTF8.GetString( buf ) );
builder.Append(Encoding.Default.GetString( buf ) );
一般情况下不是UTF8就是Default。
builder.Append(Encoding.Unicode.GetString( buf ) );
改为:
builder.Append(Encoding.UTF8.GetString( buf ) );
builder.Append(Encoding.Default.GetString( buf ) );
一般情况下不是UTF8就是Default。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
把unicode改为Default
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你把unicode,改为默认的,试试!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询