以下的U盘 文件格式为 fat
1.Busybox 挂载U盘 U盘里的文件名显示不全
在mount的时候没有加-t vfat时,而是mount自己默认的一种文件系统(是MSDOS,因为在kernel配置中选择了支持这种文件系统),所以mount后的结果就是MSDOS FS了,文件名只能是8+3(8个文件名+3个后缀)。
解决的方法是在mount时主动指明文件系统的类型:
mount -t vfat
2.Busybox 挂载U盘 通过rdesktop重定向到服务器,中文文件名显示乱码
a.在busybox 中添加 locale support 支持
Busybox Settings --->
General Configuration --->
[*] Enable locale support (system needs locale for this to work)
[*] Support Unicode
[*] Use libc routines for Unicode (else uses internal ones)
b.修改busybox源码目录下的./libbb/printable_string.c
先找到这样一段:
if (c < ' ')
break;
if (c >= 0x7f)
break;
s++;
注释掉某两行(34,35行):
/* if (c >= 0x7f) */
/* break; */
然后找这样一段(48行):
unsigned char c = *d;
if (c == '\0')
break;
if (c < ' ' || c >= 0x7f)
*d = '?';
d++;
把 if (c < ' ' || c >= 0x7f) 改成 if (c < ' ')
c.在系统文件的 /usr/lib 目录下 添加 gconv (字符转换)目录(从PC上复制过来(/usrlib/gconv/))
d.设置系统的 LANG 为 zh_CN.UTF-8
e. 挂载U 盘时指定字符编码
mount -t vfat -o codepage=936,iocharset=utf8 /dev/sda1 /mnt
f. 内核配置
设置 FAT 的默认 codepage 为 936,默认iocharset 为utf8
---- DOS/FAT/NT Filesystems ----
[*] VFAT (Windows-95) fs support
(936) Default codepage for FAT
(utf8) Default iocharset for FAT
--- Base native language support ---
(cp936) Default NLS Option
[*] Simplified Chinese charset (CP936, GB2312)
[*] NLS UTF-8
设置默认语言支持为 cp936(即中文),添加支持的字符集,GB2312,UTF-8
阅读(2970) | 评论(0) | 转发(0) |