关于UCS2编码的信息?

dingfuhao 2002-05-17 04:25:53


说说UCS2编码是怎么回事?

现在我有一个中英文混合的UCS2编码的字符创,
我怎么样显示这个字符串信息啊?
...全文
1080 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
NowCan 2002-05-24
  • 打赏
  • 举报
回复
#include <windows.h>
#include <lm.h>
#include <stdio.h>

BOOL GetFullName( char *UserName, char *Domain, char *dest )
{
WCHAR wszUserName[256]; // Unicode user name
WCHAR wszDomain[256];
LPBYTE ComputerName;

struct _SERVER_INFO_100 *si100; // Server structure
struct _USER_INFO_2 *ui; // User structure

// Convert ANSI user name and domain to Unicode

MultiByteToWideChar( CP_ACP, 0, UserName,
strlen(UserName)+1, wszUserName,
sizeof(wszUserName)/sizeof(wszUserName[0]) );
MultiByteTOWideChar( CP_ACP, 0, Domain,
strlen(Domain)+1, wszDomain, sizeof(wszDomain)/sizeof(wszDomain[0]) );

// Get the computer name of a DC for the domain.

NetGetDCName( NULL, wszDomain, &ComputerName );

// Look up the user on the DC.

if( NetUserGetInfo( (LPWSTR) ComputerName,
(LPWSTR) &wszUserName, 2, (LPBYTE *) &ui ) )
{
printf( "Error getting user information.\n" );
return( FALSE );
}

// Convert the Unicode full name to ANSI.

WideCharToMultiByte( CP_ACP, 0, ui->usri2_full_name, -1,
dest, 256, NULL, NULL );

return (TRUE);
}
NowCan 2002-05-17
  • 打赏
  • 举报
回复
要在DOS方式下直接打印有困难。需要先转换为GB。你去查查WideCharToMultiByte这个函数。
kary 2002-05-17
  • 打赏
  • 举报
回复
如果是UNICODE,则可以用wsprintf("%S",s);不过我也不懂。
dingfuhao 2002-05-17
  • 打赏
  • 举报
回复
这个我是知道,
假设:我有
u_char buf[10];

buf[0]=78;
buf[1]=232
buf[2]=204
buf[3]=11;
buf[4]=135;
buf[5]=45;
buf[6]=0;
buf[7]=0;
buf[8]=0;
buf[9]=0;

怎么打印处字符串?
kary 2002-05-17
  • 打赏
  • 举报
回复
ucs2:2字节表示一个字符。相当于UNICODE
ucs4:4字节表示一个字符。
对否?
kary 2002-05-17
  • 打赏
  • 举报
回复
ucs2是2个字节表示一个字符。
ucs4是4个字节表示一个字符。
ucs2相当于UNICODE。
不知道这个说法对否?

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧