弄了一下午也没将这个转成功
byte[] temp3 = { 0x67, 0x97, 0x63, 0x2F, 0x51, 0xEF };//string a=FromUnicodeByteArray(temp3);
//string b = FromASCIIByteArray(temp3);
//string c = UTF8ToUnicode(a);
string d = System.Text.ASCIIEncoding.ASCII.GetString(temp3);
Encoding enc = Encoding.ASCII;
string text = enc.GetString(temp3); text = System.Text.Encoding.GetEncoding(936).GetString(temp3);//gb2312
text = System.Text.Encoding.UTF8.GetString(temp3);
text = System.Text.Encoding.Unicode.GetString(temp3);以上出来的没一个正确的。到底哪地方不对。
byte[] temp3 = { 0x67, 0x97, 0x63, 0x2F, 0x51, 0xEF };//string a=FromUnicodeByteArray(temp3);
//string b = FromASCIIByteArray(temp3);
//string c = UTF8ToUnicode(a);
string d = System.Text.ASCIIEncoding.ASCII.GetString(temp3);
Encoding enc = Encoding.ASCII;
string text = enc.GetString(temp3); text = System.Text.Encoding.GetEncoding(936).GetString(temp3);//gb2312
text = System.Text.Encoding.UTF8.GetString(temp3);
text = System.Text.Encoding.Unicode.GetString(temp3);以上出来的没一个正确的。到底哪地方不对。
解决方案 »
- EnterpriseLibrary configuration 的这种界面叫什么风格
- 有沒有誰寫過DataGridView通用排序
- C# webForm中,如何取MSChart的图片
- 我用vs2008创建了一个windows service进程服务
- C# 调用 c++方法..哎
- c# 文本框
- 网络软件中更新远程数据库记录是使用WEB服务还是Socket或其他?
- 求一个基于C#+ASP.NET实现的数据导入与数据导出SQL的源码
- ??
- 关于datagrid控件的问题
- ASP.Net MVC从客户端中检测到有潜在危险的 Request.Form 值。
- 关于Winform在PictureBox控件上绘图的一个疑问。。。。。。。
UTF-8与Unicode字符的相互转换 与 16进制Unicode转换汉字 ---->Unicode转换为3位UTF-8编码代码(Copy修改即可使用 )
CString strUnicode;
strUnicode=“阿鸟是帅锅“;
int iLen;
WCHAR m_acp[200];
char m_UTF[200]; iLen = MultiByteToWideChar(CP_ACP,NULL,strUnicode,-1,m_acp,200); iLen = WideCharToMultiByte(CP_UTF8,NULL,m_acp,-1,m_UTF,2000,NULL,NULL);CString zc;
zc.Format(“%d“,m_UTF);
AfxMessageBox(zc);//m_UTF便是转换过后10进制的UTF8编码, 换成16进制后3位一字便可
---->16进制Unicode转换汉字代码(Copy修改即可使用 )char translateHex(char hex)
{
if(hex >= 'A')
return (hex & 0xdf) - 'A' + 10;
else
return hex - '0';
} char* URLstr="%B0%A1%C4%F1%CA%C7%CB%A7%B9%F8"; //阿鸟是帅锅
int len = strlen(URLstr);
char* result = new char[len + 1];
memset(result, len + 1, 0);
for(int i = 0, j = 0; i <= len; i++, j++)
{
if(URLstr[i] == '+')
result[j] = ' ';
else if(URLstr[i] == '%')
{
result[j] =
translateHex(URLstr[i + 1]) * 16 +
translateHex(URLstr[i + 2]);
i += 2;
} else
result[j] = URLstr[i];
}AfxMessageBox(result);
---->UTF-8转换Unicode汉字代码(Copy修改即可使用 )
char str [ 256 ] = {( char )0xE4, ( char ) 0xBD, ( char ) 0xA0,
( char ) 0xE5 ,( char)0xA5 ,(char)0xBD,
(char)0x61, (char)0x62 ,(char)0x63,(char)0} ; //一段UTF-8编码
WCHAR* strA;
int i= MultiByteToWideChar ( CP_UTF8 , 0 ,(char*) str ,-1 ,NULL,0);
strA = new WCHAR[i];
MultiByteToWideChar ( CP_UTF8 , 0 ,( char * ) str, -1, strA , i);
i= WideCharToMultiByte(CP_ACP,0,strA,-1,NULL,0,NULL,NULL);
char *strB=new char[i];
WideCharToMultiByte (CP_ACP,0,strA,-1,strB,i,NULL,NULL);
//strB即为所求
AfxMessageBox(strB);
delete []strA;
delete []strB;
用工具就能正常显示人名:以上你的方法,与我要求的情况不一样。
林振凯