QT编译出现stray '\343' in program错误
1.问题出现的原因:
代码中出现全角的符号。
2.问题解决的方法:
通过 cat -A 加文件名 查看那些地方出现了全角符号,如果为$表示正常,其它符号表示该地方有问题,见有问题的地方将其修改。
3.重新编译即可。
1. 汉字字形码
为了将汉字在显示器或打印机上输出,把汉字按图形符号设计成点阵图,就得到了相应的点阵代码(字形码)。 全部汉字字码的集合叫汉字字库。汉字库可分为软字库和硬字库。软字库以文件的形式存放在硬盘上,现多用这种方式,硬字库则将字库固化在一个单独的存储芯片中,再和其它必要的器件组成接口卡,插接在计算机上,通常称为汉卡。 用于显示的字库叫显示字库。显示一个汉字一般采用16×16点阵或24×24点阵或48×48点阵。已知汉字点阵的大小,可以计算出存储一个汉字所需占用的字节空间。例:用16×16点阵表示一个汉字,就是将每个汉字用16行,每行16个点表示,一个点需要1位二进制代码,16个点需用16位二进制代码(即2个字节),共16行,所以需要16行×2字节/行=32字节,即16×16点阵表示一个汉字,字形码需用32字节。 即:字节数=点阵行数×点阵列数/8 用于打印的字库叫打印字库,其中的汉字比显示字库多,而且工作时也不像显示字库需调入内存。 可以这样理解,为在计算机内表示汉字而统一的编码方式形成汉字编码叫内码(如国标码),内码是惟一的。为方便汉字输入而形成的汉字编码为输入码,属于汉字的外码,输入码因编码方式不同而不同,是多种多样的。为显示和打印输出汉字而形成的汉字编码为字形码,计算机通过汉字内码在字模库中找出汉字的字形码,实现其转换。 例1:已知汉字"春"的国标码为343AH,求其机内码? 机内码=国标码+8080H=343AH+8080H=B4BAH 例2:用24×24点阵来表示一个汉字(一点为一个二进制位),则2000个汉字需要多少KB容量? (24×24/8)×2000/1024=140.7KB≈141KB
http://wanghaitao749.blog.163.com/blog/static/32609254200942642454413/
http://blog.csdn.net/coldkevin/article/details/7382237 知道汉字输出ascii码
知道一个汉字,输出其ASCII码:
- // 知道一个汉字,获取其ASCII编码
- char * pchar = "中";
- //需要先把pchar的每个字符转成unsigned char,
- // 直接用int i = pchar[0],得到的是负值
- unsigned char ci = pchar[0];
- int i = ci;
- unsigned char cj = pchar[1];
- int j = cj;
- cout << pchar << " " << i << "," << j << endl;
- // 输出214,208
-
MWCFONT font_hz24x24 = {
"hz24x24", // name
16, // maxwidth
16, // height
12, // ascent
0, // firstchar
128, // lastchar
hz24x24_bits, // bits
0 /*rom8x16_offset*/, // offset
0 // width
};
fb_draw_text_zoom(pfbdev, x, y, width, height, pbits, fontcolor, fc, bbc, zoom);
typedef struct // 汉字字模数据结构
{
signed char Index[2]; // 汉字内码索引
char Msk[32]; // 点阵码数据
}typFNT_GB16;
/
// 汉字字模表 //
// 汉字库: 宋体16.dot 纵向取模下高位,数据排列:从左到右从上到下 //
/
typFNT_GB16 const GB_16[] = // 数据表
{http://blog.csdn.net/pmind/article/details/6078166
小字库查找方式