网页
资讯
视频
图片
知道
文库
贴吧
地图
采购
进入贴吧
全吧搜索
吧内搜索
搜贴
搜人
进吧
搜标签
日
一
二
三
四
五
六
签到排名:今日本吧第
个签到,
本吧因你更精彩,明天继续来努力!
本吧签到人数:0
一键签到
可签
7
级以上的吧
50
个
一键签到
本月漏签
0
次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行
补签
。
连续签到:
天 累计签到:
天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
04月02日
漏签
0
天
30天自制操作系统吧
关注:
1,381
贴子:
4,825
看贴
图片
吧主推荐
游戏
12
回复贴,共
1
页
<返回30天自制操...吧
>0< 加载中...
30天下的中文显示教程
只看楼主
收藏
回复
贴吧用户_QJbK4eV
找不到
5
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
虽然曾经有一篇贴吧,叫做“28天末,中文显示成功”,里面就写了中文显示,还配了代码。但具体的思路是怎样的,我们依旧一无所知。这几天逛知乎发现一个好帖子,个人认为实现中文显示的方法比那篇帖子简单。
送TA礼物
1楼
2023-06-17 12:58
回复
贴吧用户_QJbK4eV
找不到
5
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
2L喂度娘,3L开始
2楼
2023-06-17 12:58
回复
收起回复
贴吧用户_QJbK4eV
找不到
5
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
首先制作中文字体的字模。书里提到了这一部分的操作:
HZK16的字库很容易在网上找到。不想找的话也可以去这个链接:
ht[doge]tps://ww[doge]ti.la[doge]nzo[doge]uj.co[doge]m/ijzQp0zckvwb(请去掉所有的[doge])
4楼
2023-06-17 13:06
回复
收起回复
贴吧用户_QJbK4eV
找不到
5
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
接下来就是合并英文字模和中文字模了(不这么搞还得做很多麻烦的处理)。直接使用下面的cmd命令:
copy /b hankaku.bin + HZK16 HZK16.org
即可将hankaku.bin与HZK16合并。
(我并没有按书中所述提取前165440字节,因为那样不能显示的字有点多。)
5楼
2023-06-19 19:32
回复
收起回复
贴吧用户_QJbK4eV
找不到
5
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
HZK16.org到手之后,想tek压缩可以tek压缩一下,然后给压缩后的文件命名为nihongo.fnt;不压缩的话就直接把HZK16.org改名为nihongo.fnt即可(这样可以不用管那么多东西,比如更改文件名之类的)。
6楼
2023-06-20 18:34
回复
收起回复
贴吧用户_QJbK4eV
找不到
5
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
现在我们字库就已经有了。接下来我们打开graphics.c,找到putfonts8_asc的部分。下面是在实现EUC显示后它的样子:
我们将对这一部分进行更改。(后面注释乱码是因为我开的字符编码是utf-8而不是shift-jis)
7楼
2023-06-20 18:38
回复
收起回复
贴吧用户_QJbK4eV
找不到
5
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
书里说直接使用这一部分就可以实现中文显示了。是这样的吗?
我们可以准备一个中文文档进行测试,结果如下:
日文乱码了,英文没有乱码,这两部分非常正常。然而,“中文显示测试”这6个字并没有如期显示。
8楼
2023-06-20 18:46
回复
收起回复
贴吧用户_QJbK4eV
找不到
5
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
为什么呢?这里我们就要提到一个重要的概念:字库的左右结构和上下结构。顾名思义,左右结构的字库先保存左半边的16进制数据,再保存右半边的16进制数据;而上下结构则是先保存上半边的16进制数据,再保存下半边的16进制数据。
书中所用到的jpn16v00.bin是左右结构的字库,但我们用到的HZK16是上下结构的。因此乱码非常正常。
9楼
2023-06-20 18:49
回复
收起回复
贴吧用户_QJbK4eV
找不到
5
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
显然,现在有两条路可走:一种是做一个上下结构字库专用的显示,另一种就是把上下结构的字转换成左右结构,再调用左右结构字库的显示。我们选择后一种方法,因为它用到的代码更少(我只添加了3行就达到了目的)。
10楼
2023-06-20 18:50
回复(1)
收起回复
贴吧用户_QJbK4eV
找不到
5
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
上下结构的字怎么转换成左右结构?上下结构的字是按行存储的,显然第一个字节就是左半角的,第二个字节就是右半角,第三个字节又是左半角,以此类推。那么我们写一个循环即可,代码如下(这里只截了task->langmode == 2中else的部分):
个人认为代码比较好理解,唯一要注意的就是第一个字节代表的是索引0。
11楼
2023-06-20 18:54
回复
收起回复
贴吧用户_QJbK4eV
找不到
5
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
重新make run_full,结果如下:
可以看到中文显示已经成功了一半了,但是前面的“中文显”3个字并没有打印出来,只打印了“示测试”3个字。这是个很奇怪的bug,我推测是IPL加载的柱面数不够导致。
打开ipl09.nas,把:
改成:
make run_full,再试一遍看看,结果如下:
显示成功!看起来果然是IPL的问题!
12楼
2023-06-20 19:03
回复
收起回复
贴吧用户_QJbK4eV
找不到
5
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
现在的默认显示模式仍然是shift-jis,我们为了方便可以自行修改为euc(GB2312),我就不贴代码了(逃
哦对了,请记住测试文档必须使用GB2312/记事本中的ANSI编码!不能用UTF-8!不能用UTF-8!不能用UTF-8!
13楼
2023-06-20 19:12
回复
收起回复
登录百度账号
扫二维码下载贴吧客户端
下载贴吧APP
看高清直播、视频!
贴吧热议榜
1
解放军联合演训释放什么信号
2144173
2
小米股价为何突然暴跌
1474173
3
活侠传和苏丹的游戏谁更会恶心玩家
1360606
4
愚人节告白失败成小丑
1244475
5
口吧笑传之航吧老哥是我爸
999648
6
Faker捐款5000万韩元被骂抠门
921564
7
苏丹粉丝不承认游戏夹带私货
813604
8
俄罗斯多地爆发神秘病毒
793821
9
mujica第三季制作的原因找到了
743000
10
怪猎荒野中配确定5月更新
634429
贴吧页面意见反馈
违规贴吧举报反馈通道
贴吧违规信息处理公示