日期:2014-05-19  浏览次数:20874 次

Unicode转GB2312的问题
源文件是UNICODE格式,用C#的Encoding.Convert转换成GB2312后,文件体积比直接用记事本打开另存为GB2312的多一个字节。打开用c#转换后的GB2312文件,比用记事本打开另存为的GB2312文件在文件的最前面多了一个“?”号。请问这是为什么呢?谢谢!

------解决方案--------------------
//如果是0xFF, 0xFE开头就跳到第3个位置开始读

private byte[] Unicode2GB2312(byte[] UnicodeContentBytes)
{
int i = 0;
if (UnicodeContentBytes.Length > 2 && UnicodeContentBytes[0] == 0xFF &&
UnicodeContentBytes[1] == 0xFE) i = 2;
return Encoding.Convert(Encoding.Unicode,
Encoding.GetEncoding( "GB2312 "), UnicodeContentBytes, i,
UnicodeContentBytes.Length - i);
}