请教C#关于字符串BIG5编码转UTF8编码的问题。
我代码如下:publicstaticstringBig5ToUtf8(stringbig5Str){stringstr="";byte[]strByte=Encoding...
我代码如下:
public static string Big5ToUtf8(string big5Str)
{
string str = "";
byte[] strByte = Encoding.GetEncoding("BIG5").GetBytes(big5Str);
byte[] utf8Byte = Encoding.Convert(Encoding.GetEncoding("BIG5"), Encoding.UTF8, strByte);
str = Encoding.UTF8.GetString(utf8Byte);
return str;
}
转换后得到字符串仍然是乱码,求解,谢谢。
跟大小写没关系,big5也试过了,不是这个原因。 展开
public static string Big5ToUtf8(string big5Str)
{
string str = "";
byte[] strByte = Encoding.GetEncoding("BIG5").GetBytes(big5Str);
byte[] utf8Byte = Encoding.Convert(Encoding.GetEncoding("BIG5"), Encoding.UTF8, strByte);
str = Encoding.UTF8.GetString(utf8Byte);
return str;
}
转换后得到字符串仍然是乱码,求解,谢谢。
跟大小写没关系,big5也试过了,不是这个原因。 展开
2个回答
展开全部
你误解了编码的意思
编码是文字在计算机种的二进制表示。同一段文字,不论用什么编码,最后转换成字符串输出应当是一致的。
Big5转UTF8的函数,应当是输入byte[](实质上是字节流),输出也是byte[]
而.Net的string使用的统一的Unicode编码,并且带字节序的
这个函数应当这样写
public static byte[] Big5ToUtf8(byte[] src)
{
string s = Encoding.GetEncoding( "BIG5" ).GetString( src );
byte[] dst = Encoding.UTF8.GetBytes( s );
return dst;
}
编码是文字在计算机种的二进制表示。同一段文字,不论用什么编码,最后转换成字符串输出应当是一致的。
Big5转UTF8的函数,应当是输入byte[](实质上是字节流),输出也是byte[]
而.Net的string使用的统一的Unicode编码,并且带字节序的
这个函数应当这样写
public static byte[] Big5ToUtf8(byte[] src)
{
string s = Encoding.GetEncoding( "BIG5" ).GetString( src );
byte[] dst = Encoding.UTF8.GetBytes( s );
return dst;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询