CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  工具平台和程序库

汉字不能正常显示的问题,很烦人,帮忙。

楼主languiwen(滥)2004-08-03 10:51:10 在 C/C++ / 工具平台和程序库 提问

我写一个程序,调用别人   的SDK函数,把每个汉字作为一个USHORT格式转入。  
   
  请问有谁可以告诉我,怎么把一个包含汉字CString类的对象,转化为一个USHORT  
  数组。  
   
  不胜感激,100分奉上 问题点数:100、回复次数:15Top

1 楼languiwen(滥)回复于 2004-08-03 19:44:27 得分 0

比如:   USHORT   =   '奇'   ;  
  它等于50918;  
  但是它的UNICODE   好象是22855,有什么办法呢?  
  比如把CString   t("奇怪");   怎么把它转化为USHORT[2]Top

2 楼UPCC(杂食动物)回复于 2004-08-03 19:45:23 得分 0

USHORT   =   L'奇'Top

3 楼antijpn(antijpn)回复于 2004-08-03 20:27:38 得分 0

一个是MultiByte   Character   System的字符,你要转换到Unicode字符,CString类里面好像是有这样的函数的Top

4 楼languiwen(滥)回复于 2004-08-04 20:45:28 得分 0

UPCC,   antijpn(antijpn   你们好,我的意思是,比如我从一个编辑框里得到一个字符串,含汉字,还有别的字符,我该什么把这些字符一个一个地放到一个USHORT数组中去。  
   
  用L‘奇’的方法,是因为你事先知道这个字,但是用户从编辑框输入的东西,我是无法预知的。谢谢你们Top

5 楼UPCC(杂食动物)回复于 2004-08-04 21:11:01 得分 0

CString   str;  
  str=Edit.Text;  
  int   i;  
  i=Strlen(str);  
  USHORT   Arr[];//还是用USHORT做例子  
  int   n=0;  
  for(int   j=0;   j<i;   j++)  
  {  
  if(str[i]>127)  
  {  
  arr[n]=Word(str[j],str[j+1]);  
  j++;  
  }  
  else  
  arr[n]=Word(str[j],0);  
  n++  
  }  
   
  不知道是否错误,顺便写的。但思想应该对的。判断那个字节是不是大于127,大就是汉字。Top

6 楼antijpn(antijpn)回复于 2004-08-04 22:27:59 得分 0

USHORT是2字节的类型,所以我估计应该是存放UNICODE或者MBCS,我给出一个UNICODE地实现  
   
   
  你的数据来源是什么?如果是TextBox的话,可以这样  
  CString   str;  
  GetDlgItem(YOUR_TEXTBOX)->GetWindowText(str);  
  USHORT*   ptr=new   USHORT[str.GetLength()+1];//假定USHORT是双字节的数据  
  wcscpy(ptr,CString);  
  Top

7 楼LLnju(LLnju)回复于 2004-08-05 12:26:49 得分 0

转换成UNICODE处理是很简单的Top

8 楼expert2000(ZLX)回复于 2004-08-05 12:36:48 得分 0

收藏Top

9 楼flyelf(空谷清音)回复于 2004-08-05 21:00:58 得分 100

mbstowcs可以转换Top

10 楼languiwen(滥)回复于 2004-08-06 08:13:49 得分 0

我转换成了UNICODE,但得出来的结果并不成功,我先试一下UPCC(我是菜鸟)(我就喜欢---灌  
   
  的方法Top

11 楼yjh1982(血精灵)回复于 2004-08-06 08:17:48 得分 0

就用api转化muti到unicodeTop

12 楼languiwen(滥)回复于 2004-08-07 12:10:17 得分 0

就用api转化muti到unicode,我早试过了,是不是我参数设不对,  
  谁要是有成功的代码?希望要救救我了Top

13 楼LLnju(LLnju)回复于 2004-08-07 12:41:37 得分 0

#include   <atlbase.h>  
   
  void   func(   LPSTR   lpsz   )  
  {  
        USES_CONVERSION;  
        ...  
        LPWSTR   x   =   A2W(lpsz)  
        //   Do   something   with   x  
        ...  
  }  
  Top

14 楼dxj1234(Kindly⊙Wolf)回复于 2004-08-08 17:45:16 得分 0

要全部是汉字才不会乱码啊:0Top

15 楼peter9606( 荷尔蒙一失效 人就清醒了)回复于 2004-08-08 18:15:59 得分 0

mark~Top

相关问题

  • 如何正常显示汉字?
  • 显示汉字?
  • 我的汉字不能正常显示,该怎么办?
  • 为何我程序中的汉字总是显示不正常?
  • 下载老外的代码后不能正常显示汉字
  • 控件标题中的汉字无法正常显示
  • 为何我的.jsp程序不能正常显示汉字(jdk1.4和Tomcat4.0)??
  • 繁体汉字显示正常需要下载哪些字符集?
  • Javadoc运行后注释的汉字显示不正常的问题
  • 从数据库里面读的汉字能正常显示,但是html里面的汉字显示出来是乱码?

关键词

  • 汉字
  • 字符
  • 转化
  • unicode
  • ushort
  • cstring
  • 比如
  • str

得分解答快速导航

  • 帖主:languiwen
  • flyelf

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo