找回密码
 立即注册
查看: 1886|回复: 7

使用gbk字库如何实现换行

[复制链接]
  • 打卡等级:以坛为家III
  • 打卡总天数:851
  • 最近打卡:2026-07-06 07:08:27

23

主题

137

回帖

3681

积分

论坛元老

积分
3681
发表于 2024-1-8 16:55:56 | 显示全部楼层 |阅读模式
用znfat,模拟电子书,OLED显示文本内容,用的是GBK字库,请问文本中的换行如何在OLED上实现,我这里显示的换行是一个乱码

video_20240108_165001.mp4

9.3 MB, 下载次数: 146

回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:765
  • 最近打卡:2026-07-05 12:19:02

4

主题

242

回帖

3391

积分

论坛元老

积分
3391
发表于 2024-1-11 09:38:43 | 显示全部楼层
这个只能你的程序去处理,检测到换行符手动在OLED上换行。OLED的驱动一般都不支持换行。,
回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:851
  • 最近打卡:2026-07-06 07:08:27

23

主题

137

回帖

3681

积分

论坛元老

积分
3681
发表于 2024-1-11 17:29:18 | 显示全部楼层
目前还没有处理好
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:166
  • 最近打卡:2026-04-28 19:38:13

0

主题

70

回帖

350

积分

中级会员

积分
350
发表于 2024-1-12 09:28:12 | 显示全部楼层
字库没有换行的概念,你可以自己检测,把换行跳掉,手动切到下一行
回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:816
  • 最近打卡:2026-07-06 00:00:09

43

主题

525

回帖

4848

积分

荣誉版主

积分
4848
发表于 2024-1-12 09:53:32 | 显示全部楼层
换行和分段是在现实字符的函数里实现。
换行是当显示的字符的x坐标到屏幕右边界的距离不够一个字符宽度时,就执行一段让x坐标归零,同时让y坐标增加一个字符高度。

段落换行也一样,当读取到换行符的时候,让xy坐标归零和下移。



至于断尾的乱码,看下文本是什么编码,文档里换行符的内码是多少,读取到的时候,替换成单片机能识别的数值。

能体会到发现一个不理解的现象然后找原因然后要么解决掉问题要么被问题解决掉的那种快乐是我的幸运
回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:851
  • 最近打卡:2026-07-06 07:08:27

23

主题

137

回帖

3681

积分

论坛元老

积分
3681
发表于 2024-1-12 10:03:25 | 显示全部楼层
大*** 发表于 2024-1-12 09:53
换行和分段是在现实字符的函数里实现。
换行是当显示的字符的x坐标到屏幕右边界的距离不够一个字符宽度时, ...

用的是GBK字库编码,ZNFAT读取到的TXT文件的内容显示到OLED,GBK编码表查询不到换行符对对应的内码
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:12
  • 最近打卡:2026-06-20 18:52:23
已绑定手机

3

主题

14

回帖

201

积分

中级会员

积分
201
发表于 2024-5-11 15:12:28 | 显示全部楼层
哇偶,原来早就有人做出来了小说阅读器……不知道能不能分享下代码?
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:594
  • 最近打卡:2026-07-05 10:46:15
已绑定手机

16

主题

636

回帖

1733

积分

荣誉版主

积分
1733
发表于 2024-5-12 01:53:28 | 显示全部楼层
yan*** 发表于 2024-1-12 10:03
用的是GBK字库编码,ZNFAT读取到的TXT文件的内容显示到OLED,GBK编码表查询不到换行符对对应的内码 ...

用二进制方式打开txt文件,看看换行的地方是什么,然后显示代码里面对这个特殊字符换行处理就好了吧.??
回复

使用道具 举报 送花

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

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2026-7-6 08:21 , Processed in 0.077083 second(s), 90 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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