野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 13246|回复: 2

关于显示汉字问题

[复制链接]
发表于 2014-12-27 19:09:23 | 显示全部楼层 |阅读模式
我在电脑上模拟了一次从字库读取数据 然后将汉字显示出来的实验

#include <stdio.h>
#include <stdlib.h>


void Pr(unsigned char *p)
{
    unsigned short temp;
    unsigned char i,j;
    for(i=0;i<16;i++)
    {
        temp=p[i*2];
        temp<<=8;
        temp|=p[i*2+1];
        for(j=0;j<16;j++)
        {
            if(temp&0x8000)
                printf("#");
            else
                printf(" ");
            temp<<=1;
        }
        printf("\n");
    }
}
void Decode(unsigned char *p)
{
    unsigned char buff[32];
    unsigned char High=*p;
    unsigned char Low=*(p+1);
    unsigned int pos=(High-0xb0)*94+(Low-0xa1)*32;
    FILE *f;
    f=fopen("Font.bin","r");
    if(f!=NULL)
    {
        fseek(f,pos,0);
        fread(buff,32,1,f);
        fclose(f);
        Pr(buff);
    }
    else
        printf("ERROR!");
}
void Print(unsigned char *buff)
{
    while(*buff)
    {
        Decode(buff);
        buff+=2;
    }
}
int main()
{
//    unsigned char *p="打";
//    unsigned short qw=*p;
//    qw<<=8;
//    qw|=*(p+1);
   // printf("%0x,%d\n",qw,qw);
  //  Print("昂");
  //  Print("不");
  Decode("啊");
  Decode("暗");
  Decode("捕");
  while(1);
    return 0;
}


结果好像拼音 是 a开头的字都能显示正确 其他字母开头的字不是乱码就是显示其他字. 可是移植在开发板上却没问题.这是为什么?
QQ截图20141227190644.jpg
QQ截图20141227190702.jpg
回复

使用道具 举报

发表于 2014-12-29 09:15:15 | 显示全部楼层
是不是字库错了,少了一部分
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-12-31 20:29:13 | 显示全部楼层
flyleaf 发表于 2014-12-29 09:15
是不是字库错了,少了一部分

字库我换了很多个都是这样的结果
回复 支持 反对

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-12-29 03:20 , Processed in 0.033158 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表