CString UTF8Convert(CString &str,int sourceCodepage,int targetCodepage)
{
//CP_ACP=ANSI,CP_UTF8=utf-8
int len=str.GetLength();
int unicodeLen=MultiByteToWideChar(sourceCodepage,0,str,-1,NULL,0);
wchar_t * pUnicode;
pUnicode=new wchar_t[unicodeLen+1];
memset(pUnicode,0,(unicodeLen+1)*sizeof(wchar_t));
MultiByteToWideChar(sourceCodepage,0,str,-1,(LPWSTR)pUnicode,unicodeLen);
BYTE * pTargetData = NULL;
int targetLen=WideCharToMultiByte(targetCodepage,0,(LPWSTR)pUnicode,-1,(char *)pTargetData,0,NULL,NULL);
pTargetData=new BYTE[targetLen+1];
memset(pTargetData,0,targetLen+1);
WideCharToMultiByte(targetCodepage,0,(LPWSTR)pUnicode,-1,(char *)pTargetData,targetLen,NULL,NULL);
CString rt;
rt.Format("%s",pTargetData);
delete pUnicode;
delete pTargetData;
return rt;
}
能翻译成C#吗??
{
//CP_ACP=ANSI,CP_UTF8=utf-8
int len=str.GetLength();
int unicodeLen=MultiByteToWideChar(sourceCodepage,0,str,-1,NULL,0);
wchar_t * pUnicode;
pUnicode=new wchar_t[unicodeLen+1];
memset(pUnicode,0,(unicodeLen+1)*sizeof(wchar_t));
MultiByteToWideChar(sourceCodepage,0,str,-1,(LPWSTR)pUnicode,unicodeLen);
BYTE * pTargetData = NULL;
int targetLen=WideCharToMultiByte(targetCodepage,0,(LPWSTR)pUnicode,-1,(char *)pTargetData,0,NULL,NULL);
pTargetData=new BYTE[targetLen+1];
memset(pTargetData,0,targetLen+1);
WideCharToMultiByte(targetCodepage,0,(LPWSTR)pUnicode,-1,(char *)pTargetData,targetLen,NULL,NULL);
CString rt;
rt.Format("%s",pTargetData);
delete pUnicode;
delete pTargetData;
return rt;
}
能翻译成C#吗??
解决方案 »
- 客户机通过ftp协议上传文件,服务器怎样记录上传客户机的ip和上传端口
- sqlparameterCollection的Count=0的索引无效
- 在form2里面如何改变form1里面控件的属性 c#
- 我装了C#,现在要打开一个VC++.net的工程,还需要重新装VC++.net的开发环境吗?
- SQL查询相关,急!!!急!!!
- 请问用C# socket 封装的API,能不能用unix下标准c进行调用
- 问一个VS.NET工具关于异常处理的设置在哪里
- 在线等待:DATAGRID添加记录问题<--不解决不能回家
- 关于线程的提问
- c#中有关api的操作!!
- C# 条码标签批量生成
- C#使用GMap.NET做简单的地图
taskItem.itemdesc = System.Text.Encoding.UTF8.GetString(System.Text.Encoding.UTF8.GetBytes(dr["Opitem_Desc"].ToString()));
这个是没用的 还是乱码
求帮助
求各位 帮帮忙
这个不成功 还是乱码
Encoding.GetEncoding("GB2312").GetString(UTF8Encoding.UTF8.GetBytes(dr["Opitem_Desc"].ToString()));
还是乱码啊 虽然就几个汉字乱码
string 又不分编码格式吧?
到了手持设备就是断开 220kv南开**2201断路**
**就是乱码
把字符串转成UTF8字节数组,然后再把这个字节数组转成GB2312字符串
你是怎么想的?