45fan.com - 路饭网

搜索: 您的位置主页 > 网络频道 > 阅读资讯:如何求得汉字的机内码。

如何求得汉字的机内码。

2016-09-03 11:16:22 来源:www.45fan.com 【

如何求得汉字的机内码。

一次中文信息课的实验,要实现根据输入的汉字,来用16*16点阵显示出来,并进行相应的扩展。以前没写过类似的程序,于是先找了很多相关资料,了解了汉字的点阵显示。本来给的提示代码是在C语言的,用到了graphics.h,在VC里面没有这个头文件,而我现在又很偏向在VC里面写,于是出现了一系列的问题。

开发平台是MFC。大体制定了几个步骤,先把输入的汉字原封不动的点阵显示。

1,根据输入的汉字,得到机内码。

2,通过机内码计算出区位码,也就是区号,和位号。

3,通过区位码计算出在汉字库HZK16中的偏移量。

4,根据偏移量,确定像素点,构建位图。CBbitmap

5,将位图显示在 PICTURE窗口中。

我没有用打点的方式,而是用了位图。我感觉后者比较好一点。

今天在实现第一个步骤时,出了些小问题。

用GetDlgItem(IDC_EDIT1)->GetWindowText(str);来取得窗口指针

然后在格式化的时候出现了问题。

CString ss;

ss.Format(_T("%X"),'我');

显示出的是“我”的机内码CED2

但是如果用ss.Format(_T("%X"),str);确不可以。

请教了老师,才发现Format里格式化的str只是一个字符,而取过来直接显示的是字符串

后来改成ss.Format(_T(''%X'),(byte)*str)只显示出CE,因为一个汉字是用2个字节存储的,只能把这个字符串的前2个字节取出来连接到一起再显示,因为对字符串的操作不是很熟悉,所以引起了那么多不必要的问题。

写在这里只为提醒自己以后注意~

最近一直再读C++primer,真是一本好书~

 

本文地址:http://www.45fan.com/a/question/71740.html
Tags: 汉字 内码 求得
编辑:路饭网
关于我们 | 联系我们 | 友情链接 | 网站地图 | Sitemap | App | 返回顶部