编码转换问题,谁知道怎么解决,什么原理?
private void button1_Click(object sender, EventArgs e)
{
//将 "你们好 "从GB2312 转换成UTF-8这时ss是乱码
string ss = ConvertFunc( "你们好 ", "utf-8 ", "gb2312 ");
//将乱码转换成GB2312就编成 "你们? ",经过测试发现,如果是双数的中文,就没问题,单数的中午就会末尾变?号,这是为什么,为什么?
MessageBox.Show(ConvertFunc(ss, "gb2312 ", "utf-8 "));
}
public string ConvertFunc(string str, string From, string To)
{
return Encoding.GetEncoding(To).GetString(Encoding.GetEncoding(From).GetBytes(str));
}
------解决方案--------------------在字符串末尾加一个 "\n "
------解决方案--------------------中文占2个字节(就是全角),西文占1个字节(即半角)
------解决方案--------------------應該需要將SS先轉換為Base64編碼,在轉換為UTF-8吧
------解决方案--------------------http://www.cnblogs.com/sxlfybb/archive/2005/06/10/171573.html
------解决方案--------------------路过
------------------------
http://fenglin.xland.cn
------------------------
------解决方案--------------------等着接分