[STM32]

FatFs文件系统为何需要 ANSI/OEM 和 Unicode编码的转换?

[复制链接]
4171|4
手机看帖
扫描二维码
随时随地手机跟帖
kokoromi|  楼主 | 2017-6-28 09:49 | 显示全部楼层 |阅读模式
移植过 FatFs的都清楚,如果要支持长文件名,就得加入936的代码页,里面有两个大的数组,是 ANSI/OEM 和 Unicode编码的相互转换数组,现在还不是很清楚,为什么需要这两种代码的转换? 我的IDE编辑器用的是GBK编码,也就是属于ANSI/OEM的,引号括起来的汉字就是符合ANSI/OEM的,为什么还需要转换到 Unicode编码?那两个数组还是很占空间的。期待大神祥解~

相关帖子

dirtwillfly| | 2017-6-28 10:07 | 显示全部楼层
文件系统的文件名默认存储方式为Unicode编码,而我们编译器甚至是电脑,用的中文码为GBK

使用特权

评论回复
kokoromi|  楼主 | 2017-6-28 12:51 | 显示全部楼层
dirtwillfly 发表于 2017-6-28 10:07
文件系统的文件名默认存储方式为Unicode编码,而我们编译器甚至是电脑,用的中文码为GBK ...

那如果我把我IDE的编辑器的编码改成Unicode,并且FatFs中使能 FF_LFN_UNICODE = 1,这样是不是就可以不用936的代码页了?

使用特权

评论回复
dirtwillfly| | 2017-6-28 13:01 | 显示全部楼层
kokoromi 发表于 2017-6-28 12:51
那如果我把我IDE的编辑器的编码改成Unicode,并且FatFs中使能 FF_LFN_UNICODE = 1,这样是不是就可以不用9 ...

和编译器的编码格式没关系。
你看看FatFs文件系统存储文件时的代码部分,看有没有办法按GBK编码存储

使用特权

评论回复
6688hyc| | 2018-6-26 15:57 | 显示全部楼层
kokoromi 发表于 2017-6-28 12:51
那如果我把我IDE的编辑器的编码改成Unicode,并且FatFs中使能 FF_LFN_UNICODE = 1,这样是不是就可以不用9 ...

这跟你IDE没关系。主要是你存储器SD/FLASH里的文件名的编码方式

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

111

主题

344

帖子

3

粉丝