| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1165 人关注过本帖
标题:UNICODE 大端 编码 如何 转 ANSI 编码?
只看楼主 加入收藏
wzxiaodu
Rank: 1
等 级:新手上路
帖 子:32
专家分:2
注 册:2017-8-11
结帖率:50%
收藏
已结贴  问题点数:20 回复次数:2 
UNICODE 大端 编码 如何 转 ANSI 编码?
小端 UNICODE 可以用 WideCharToMultiByte 转 ANSI ?
但 大端 是不行的,直接用会乱码,那该如何呢???
(我的土办法是 多次 读取 两字节 然后 交换 变成 小端,最后再用 WideCharToMultiByte 转 ANSI )


网上这个函数:
程序代码:
char * UnicodeToANSI( const wchar_t* str )
{
char* result;
int textlen;
textlen = WideCharToMultiByte( CP_ACP, 0, str, -1, NULL, 0, NULL, NULL );
result =(char *)malloc((textlen+1)*sizeof(char));
memset( result, 0, sizeof(char) * ( textlen + 1 ) );
WideCharToMultiByte( CP_ACP, 0, str, -1, result, textlen, NULL, NULL );
return result;
}



[此贴子已经被作者于2020-10-26 15:24编辑过]

搜索更多相关主题的帖子: result NULL 编码 str char 
2020-10-26 15:22
纯蓝之刃
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:76
帖 子:570
专家分:3727
注 册:2019-7-29
收藏
得分:15 
void   Reverse(char *pByte,int ByteNum)
{
    char i,tmp[10];
    if( __BYTE_ORDER == __BIG_ENDIAN)
        {
    for (i = 0; i < ByteNum; i++)
        tmp[ByteNum - i - 1] = *(pByte + i);
   
    for (i = 0; i < ByteNum; i++)
        *(pByte + i) = tmp[i];
        }
}

一般的处理就是你这样了,你可以将转换部分封装成一个函数,用系统定义的__BYTE_ORDER变量判断是否是大端进行判断处理。

一沙一世界,一花一天堂。无限掌中置,刹那成永恒。
2020-10-26 15:29
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10609
专家分:43210
注 册:2014-5-20
收藏
得分:5 
好象有几个类似的转换函数,如:htonl, htons, ntohl, ntohs 等
2020-10-26 16:58
快速回复:UNICODE 大端 编码 如何 转 ANSI 编码?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.022015 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved