6525|15

82

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

WINCE中怎么判断字符串是否存在中文啊? [复制链接]


是宽字符的,网上看到_ismbblead(),但是这个函数在wince中不支持

如何能够判断呢?

还有如何得到这个中文字符的第一个拼音呢?谢谢
此帖出自WindowsCE论坛

最新回复

  详情 回复 发表于 2008-7-29 15:57
点赞 关注
 

回复
举报

80

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
汉字的unicode编码范围是4e00-9fa5,用这个判断。

至于要得到拼音,需要自己做。或利用现成的输入法,可以得到。
此帖出自WindowsCE论坛
 
 
 

回复

94

帖子

0

TA的资源

一粒金砂(初级)

板凳
 

学习,帮顶。
此帖出自WindowsCE论坛
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

4
 
引用 1 楼 91program 的回复:
汉字的unicode编码范围是4e00-9fa5,用这个判断。

至于要得到拼音,需要自己做。或利用现成的输入法,可以得到。


unicode编码  比如“好” 如何得到这个“好”的unicode码值啊?
谢谢


wince 不是支持汉字的么? 支持汉字的话 就应该有汉字库的吧?
此帖出自WindowsCE论坛
 
 
 

回复

57

帖子

0

TA的资源

一粒金砂(初级)

5
 
写一个纯文件的Unicode文件,用二进制方式查看。

如:好,是7D 59
此帖出自WindowsCE论坛
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

6
 
引用 4 楼 91program 的回复:
写一个纯文件的Unicode文件,用二进制方式查看。

如:好,是7D 59


我的意思是怎么通过 代码得到啊?

比如

wchar_t testchar[]=L"好不好啊";

如何得到testchar[0]的码(7D 59)呢?

谢谢
此帖出自WindowsCE论坛
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

7
 
要获取汉字的字符集代码,必然要涉及到“代码页”了。

MultiByteToWideChar();可以   
  int   MultiByteToWideChar(   
      UINT   CodePage,           //   代码页,这里写CP_936   
      DWORD   dwFlags,           //   一般为0   
      LPCSTR   lpMultiByteStr,   //   汉字缓冲区   
      int   cbMultiByte,          //   number   of   bytes   in   string   
      LPWSTR   lpWideCharStr,    //   UNICODE缓冲区   
      int   cchWideChar           //   size   of   buffer   
  );

  另:windows还有一个工具可以查看某个字符的UNICODE编码charmap.exe
此帖出自WindowsCE论坛
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

8
 
  
to shuiyan :
UINT  CodePage,          //  代码页,这里写CP_936  ???

还有MultiByteToWideChar() 这个函数是ANSI转成unicode的吧
在这里 testchar 已经是 wide char了啊


如何得到unicode码?
此帖出自WindowsCE论坛
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

9
 
用多字节码到Unicode的转换函数即可   
  char*   pSrc   =   "你好,测试!"   
  wchar_t   wArr[142]   =   {0};   
  int   nLength   =   MultiByteToWideChar(CP_ACP,   0,   pSrc,   strlen(pSrc),   wArr,   140);   
   
当然也有对应的反向转换函数WideCharToMultiByte()

你如果已经是wchar_t了,那还要转什么?直接以16进制输出char就行了。
此帖出自WindowsCE论坛
 
 
 

回复

60

帖子

0

TA的资源

一粒金砂(初级)

10
 
wchar_t testchar[]=L"好不好啊";
char *p = (char*)testchar;
然后输出p[0] p[1] 就是 7D 59
此帖出自WindowsCE论坛
 
 
 

回复

78

帖子

0

TA的资源

一粒金砂(初级)

11
 
wchar_t p[]=L"好不好";
int len=lstrlenW(p);
wchar_t *sp;
sp=p;

for (int i=0;i<3;i++)
{
                RETAILMSG(1,(L"sp[0]=%x and sp[1]=%x\n",sp[0],sp[1]));
                sp++;
}

这样输出:

sp[0]=597d and sp[1]=4e0d
sp[0]=4e0d and sp[1]=597d
sp[0]=597d and sp[1]=0

开起来好像就是sp[0]代表unicode码?         不过是反过来了一下 变成59 7d
此帖出自WindowsCE论坛
 
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

12
 
引用 4 楼 91program 的回复:
写一个纯文件的Unicode文件,用二进制方式查看。

如:好,是7D 59


这个怎么写啊?谢谢
此帖出自WindowsCE论坛
 
 
 

回复

86

帖子

0

TA的资源

一粒金砂(初级)

13
 
引用 10 楼 nosilence_2007 的回复:
wchar_t p[]=L"好不好";
int len=lstrlenW(p);
wchar_t *sp;
sp=p;

for (int i=0;i <3;i++)
{
RETAILMSG(1,(L"sp[0]=%x and sp[1]=%x\n",sp[0],sp[1]));
sp++;
}

这样输出:

sp[0]=597d and sp[1]=4e0d
sp[0]=4e0d and sp[1]=597d
sp[0]=597d and sp[1]=0

开起来好像就是sp[0]代表unicode码? 不过是反过来了一下 变成59 7d



这样的话 那是不是得把 sp[0]的高八位和低八位调换,然后再看其是否在 4e00-9fa5范围了?

谢谢
此帖出自WindowsCE论坛
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

14
 
引用 11 楼 nosilence_2007 的回复:
引用 4 楼 91program 的回复:
写一个纯文件的Unicode文件,用二进制方式查看。

如:好,是7D 59


这个怎么写啊?谢谢

用记事本(Notepad)新建一个txt,随便写汉字,然后选“另存为”,里面选择Unicode就行。
此帖出自WindowsCE论坛
 
 
 

回复

67

帖子

0

TA的资源

禁止访问

15
 
提示: 作者被禁止或删除 内容自动屏蔽
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

16
 
引用 10 楼 nosilence_2007 的回复:
wchar_t p[]=L"好不好";
int len=lstrlenW(p);
//wchar_t *sp;
//sp=p;
char *sp = NULL;
sp = (char*)p; // 要用char才行


for (int i=0;i <3;i++)
{
RETAILMSG(1,(L"sp[0]=%x and sp[1]=%x\n",sp[0],sp[1]));
sp++;
}

这样输出:

sp[0]=597d and sp[1]=4e0d
sp[0]=4e0d and sp[1]=597d
sp[0]=597d and sp[1]=0

开起来好像就是sp[0]代表unicode码? 不过是反过来了一下 变成59 7d


此帖出自WindowsCE论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表