假设我的 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
class) 来表示字符和字符串。因此,您可以使用 System.Text.Encoding.Unicode.GetBytes
来获取字符串的字节数。
更多信息:
关于c# - 我应该为来自 TextBox 控件的序列化数据指定哪种编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35792490/