试了下
string str1="璁╂垜浠湅鍒颁簡浠€涔";
Encoding UTF8 = Encoding.UTF8;
Encoding gb2312 = Encoding.GetEncoding("gb2312");
string str2 = gb2312.GetString(Encoding.Convert(gb2312,UTF8,gb2312.GetByte(str1)));
貌似不行的说 下面的朋友能给个实例吗?
string str1="璁╂垜浠湅鍒颁簡浠€涔";
Encoding UTF8 = Encoding.UTF8;
Encoding gb2312 = Encoding.GetEncoding("gb2312");
string str2 = gb2312.GetString(Encoding.Convert(gb2312,UTF8,gb2312.GetByte(str1)));
貌似不行的说 下面的朋友能给个实例吗?
string str2 = gb2312.GetString(Encoding.Convert(UTF8,gb2312,gb2312.GetBytes(str1)));结果是:让我们看到什对马?
Encoding UTF8 = Encoding.UTF8;
Encoding gb2312 = Encoding.GetEncoding("gb2312");
byte[] buffer = gb2312.GetBytes(str1);
str1 = UTF8.GetString(buffer);
这里的str1明显是解码的时候用错了编码方式,于是看到的是乱码。
需要做的就是先还原,就是用解码所用的编码方式重新编码一次。
然后用正确的编码方式重新解码。string str1="璁╂垜浠湅鍒颁簡浠€涔";
Encoding UTF8 = Encoding.UTF8;
Encoding gb2312 = Encoding.GetEncoding("gb2312");
byte[] buffer = gb2312.GetBytes(str1); //还原byte[]
str1 = UTF8.GetString(buffer); //重新解码,结果:"让我们看到了什"