应为 TextBox 控件中的序列化数据指定哪种编码



假设我的WinForms应用程序中有一个TextBox

当用户单击按钮时,应用程序应通过 TCP 发送存储在此TextBox中的序列化值。

对于序列化,我使用Newtonsoft.Json库,如下所示:

string json = JsonConvert.SerializeObject(credentials);

其中credentials是保存TextBox值的类的对象。

然后我需要通过TcpClient类通过网络发送它:

TcpClient client = new TcpClient(IpAddress, Port);
NetworkStream stream = client.GetStream();
// ???

但是我需要先将json字符串转换为字节数组,因此我必须指定文本编码。我应该指定哪种文本编码才能非常安全?

我不能只将其设置为 ASCII,因为用户可以输入 unicode 字符。

.NET Framework 使用 UTF-16 编码(表示为 UnicodeEncoding类)来表示字符和字符串。因此,您可以使用System.Text.Encoding.Unicode.GetBytes来获取字符串字节数。

欲了解更多信息:

  • .NET Framework 中的字符编码

任何 Unicode 编码(UTF-7、UTF-8、UTF-16、UTF-32 等)都可用于对 Unicode 字符进行编码。UTF-8 可能是最紧凑的,具体取决于文本上使用的书写系统。

相关内容

  • 没有找到相关文章

最新更新