c# – 通过TcpClient(byte [])发送包含特殊字符的字符串
发布时间:2020-12-15 08:23:49 所属栏目:百科 来源:网络整理
导读:我正在尝试通过TcpClient(byte [])发送包含特殊字符的字符串.这是一个例子: 客户在文本框中输入“amé” 客户端使用特定编码将字符串转换为byte [](我已经尝试了所有预定义的加上一些像“iso-8859-1”) 客户端通过TCP发送byte [] 服务器接收并输出使用相同
我正在尝试通过TcpClient(byte [])发送包含特殊字符的字符串.这是一个例子:
>客户在文本框中输入“amé” 编辑: 我忘了提到结果字符串是“我?”. 编辑-2(根据要求,这里是一些代码): @DJKRAZE这里有一些代码: byte[] buffer = Encoding.ASCII.GetBytes("amé"); (TcpClient)server.Client.Send(buffer); 在服务器端: byte[] buffer = new byte[1024]; Client.Recieve(buffer); string message = Encoding.ASCII.GetString(buffer); ListBox1.Items.Add(message); 列表框中显示的字符串是“am?” ===解决方案=== Encoding encoding = Encoding.GetEncoding("iso-8859-1"); byte[] message = encoding.GetBytes("babé"); 更新: 只需使用Encoding.Utf8.GetBytes(“ééé”);奇迹般有效. 解决方法
我想回答一个问题永远不会太晚,希望有人能在这里找到答案.
C#使用16位字符,ASCII将它们截断为8位,以适合一个字节.经过一番研究,我发现UTF-8是特殊字符的最佳编码. //data to send via TCP or any stream/file byte[] string_to_send = UTF8Encoding.UTF8.GetBytes("amé"); //when receiving,pass the array in this to get the string back string received_string = UTF8Encoding.UTF8.GetString(message_to_send); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- C++中inline函数详解
- [API]Unexpected error in EGO_ITEM_USER_ATTRS_CP_PUB.Pro
- ruby – Monkey补丁:define_method优先于bind吗?
- c# – 有没有办法防止NHibernate LINQ提供程序的布尔性能问
- SQLite笔记
- flex – AS3:getTimer()方法和Timer类的准确度如何?
- Flutter进阶—质感设计之持久底部面板
- 如何与C#中的Windows Media Player进行交互
- ruby-on-rails – 如何在表单中包含Rails连接表字段?
- 如何使用webclient UploadFile,C#中的UploadValues上传多个