我正在尝试通过TcpClient(byte [])发送包含特殊字符的字符串。这是一个示例:
- 客户端在文本框中输入“amé”
- 客户端使用某种编码将字符串转换为byte [](我尝试过所有预定义的加上一些如“iso-8859-1”的编码)
- 客户端通过TCP发送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("ééé");
即可完美解决。