Text.Encoding.Default.GetBytes() / Encoding.Default.GetStrin
本文关键字:Encoding Default GetStrin GetBytes Text | 更新日期: 2023-09-27 18:09:36
我在Xamarin c#下编写了一个服务器和一个客户端应用程序(用于PC和Android手机)。
现在我有一个问题与变音符(äöüÄÖÜ)在Text.Encoding.Default.GetBytes ()/Encoding.Default.GetString()。
如果服务器端和客户端在PC上运行,则变音符转换正确。在智能手机和PC上运行时,只会在转换字母时发出问号。所有其他数据被正确转换
问题在哪里?
private void cButtonSend_Click(object sender, EventArgs e)
{
try
{
if (cAktiveClient == "") Toast.MakeText(this, "Wählen Sie einen Client aus!", ToastLength.Long).Show();
else
{
string txt = cSendeText.Text;
byte[] telegramm = new byte[txt.Length];
telegramm = System.Text.Encoding.Default.GetBytes(txt);
foreach (TcpClient c in cServer.ClientList)
{
if (c.Client.RemoteEndPoint.ToString() == cAktiveClient) cServer.Send(c, telegramm);
}
cSendeText.Text = "";
}
}
catch (Exception ex)
{
Toast.MakeText(this, ex.Message, ToastLength.Short).Show();
}
}
private void cServer_Recieve(object sender, EventArgs e)
{
// bei Aufrufen aus anderenThreads
this.RunOnUiThread(() =>
{
try
{
TCPIP_MultiServer t = sender as TCPIP_MultiServer;
cEmpfangsClient.Text = t.NowClient.Client.RemoteEndPoint.ToString();
cEmpfangsText.Text = Encoding.Default.GetString(cServer.Buffer, 0, cServer.RecievedBytes);
}
catch (Exception ex)
{
Toast.MakeText(this, ex.Message, ToastLength.Long).Show();
}
});
}
为了减小应用程序的大小,Xamarin不包含任何特定的编码。
阅读:https://developer.xamarin.com/guides/ios/advanced_topics/localization_and_internationalization/encodings/(Android也是一样)
这:https://developer.xamarin.com/guides/cross-platform/xamarin-forms/localization/