Kontext Copilot - An AI assistant for data analytics. Learn more
Expression of Interest
Socket通信中文字符乱码问题解决方法
insights Stats
warning Please login first to view stats information.
Raymond
.NET Programming
Everything about .NET framework, .NET Core, .NET Standard, .NET 5 and .NET 6.
很久前我实现了一个Windows服务,监听本机的TCP 5678端口,并且响应后返回给客户端一个随机的字符串,这个字符串中包含有中文字符。但是传输的过程中客户端接收到的字符串中文乱码了,于是自己检查了下客户端和服务器端的读取字节的编码是否统一
客户端
这是客户端的代码:
UTF8Encoding encoder = new UTF8Encoding(); textBoxQuote.Text =encoder.GetString(buffer);
服务器端
这是服务器端的代码:
Socket clientSocket = listener.AcceptSocket(); string message = GetRandomQuoteOfTheDay(); UTF8Encoding encoder = new UTF8Encoding(); byte[] buffer = encoder.GetBytes(message); clientSocket.Send(buffer, buffer.Length, 0); clientSocket.Close();
两个都是UTF-8格式的但是为什么出现了乱码的情况呢?
解决问题
检查了下读取随机字符串的那个文件的格式原来是ASCII格式的,于是自己另存为UTF-8格式的这个问题就解决了,因为我那个文件用记事本创建默认保存格式不是UTF-8的,所以大家如果遇到此类情况,最好检查下你传输的字符串的来源文件的格式是否统一。只有当字符串格式在所有环节都一致时,才能避免类似的字符乱码问题。
info Last modified by Raymond 3 years ago
copyright
This page is subject to Site terms.
comment Comments
No comments yet.