苏飞论坛
标题:
Socket接收字符流出现乱码!?
[打印本页]
作者:
老曹
时间:
2013-4-9 14:05
标题:
Socket接收字符流出现乱码!?
Socket接收字符流出现乱码怎么解决 ?服务端是Java发送的字符编码是UTF-8,以下两种方法均不行:
[code=csharp]public static string UTF8ToGB2312(string str)
{
try
{
Encoding utf8 = Encoding.GetEncoding("utf-8");
Encoding gb2312 = Encoding.GetEncoding("gb2312");//Encoding.Default ,936
byte[] temp = utf8.GetBytes(str);
byte[] temp1 = Encoding.Convert(utf8, gb2312, temp);
string result = gb2312.GetString(temp1);
return result;
}
catch (Exception ex)//(UnsupportedEncodingException ex)
{
Console.WriteLine(ex.ToString());
return null;
}
}
public static string GB2312ToUTF8(string str)
{
try
{
Encoding uft8 = Encoding.GetEncoding("utf-8");
Encoding gb2312 = Encoding.GetEncoding("gb2312");
byte[] temp = gb2312.GetBytes(str);
Console.WriteLine("gb2312的编码的字节个数:" + temp.Length);
for (int i = 0; i < temp.Length; i++)
{
Console.WriteLine(Convert.ToUInt16(temp
).ToString());
}
byte[] temp1 = Encoding.Convert(gb2312, uft8, temp);
Console.WriteLine("uft8的编码的字节个数:" + temp1.Length);
for (int i = 0; i < temp1.Length; i++)
{
Console.WriteLine(Convert.ToUInt16(temp1
).ToString());
}
string result = uft8.GetString(temp1);
return result;
}
catch (Exception ex)//(UnsupportedEncodingException ex)
{
Console.WriteLine(ex.ToString());
return null;
}
}[/code]
作者:
站长苏飞
时间:
2013-4-9 14:42
一般就这几种你可以再试试
[code=csharp] string str = "苏飞";
//utf-8
str = Encoding.UTF8.GetString(Encoding.ASCII.GetBytes(str));
//ascii
str = Encoding.ASCII.GetString(Encoding.ASCII.GetBytes(str));
//Default
str = Encoding.Default.GetString(Encoding.ASCII.GetBytes(str));
//Unicode
str = Encoding.Unicode.GetString(Encoding.ASCII.GetBytes(str));
//gbk
str = Encoding.GetEncoding("gbk").GetString(Encoding.ASCII.GetBytes(str));
//gb2312
str = Encoding.GetEncoding("gb2312").GetString(Encoding.ASCII.GetBytes(str));[/code]
如果还不行我感觉应该是流的问题,可以直接将接收到的流进行转化,而不是转成Str后再转,
直接在接收的时候进行编码设置。
作者:
站长苏飞
时间:
2013-4-9 14:43
建议你发一串乱码的文字上来,我转转看就知道了
作者:
印醒
时间:
2013-4-9 14:45
应该是你从网络上接收到的数据转换的格式不正确,看你代码里有UTF-8和gb2312,可能是不支持你要转换前或者转换后的格式,你试试换种格式看行不
欢迎光临 苏飞论坛 (http://www.sufeinet.com/)
Powered by Discuz! X3.4