c# - 我应该为来自 TextBox 控件的序列化数据指定哪种编码

标签 c# json winforms encoding json.net

假设我的 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/

相关文章:

c# - 在 DesignMode 中编辑集合的最简单方法?

c# - 显示两个最大的 N 个数字 c#

c# - StreamReader.ReadLine() 在与 POP3 一起使用时总是失败

json - JSON 字符串的交集

c# - Json和Xml序列化,哪个性能更好?

winforms - Infragistics UltraCalendarCombo 似乎与药物有关

c# - 为什么 Visual Studio 2010 中未到达断点?

c# - 使用 tcp 套接字异步发送/接收固定数量的数据

Java - 解析json对象(输入结束于...的字符0)

c# - 刷新一个控件