解决Linux下fat32创建中文路径Windows下不识别

FAT32文件系统在linux下一直不友好,比如想在里面创建中文的路径,直接的创建的话在linux下能看到中文,移到Wwindows下就不行了,而且在linux下U盘默认挂载中文还是乱码,通过一阵摸索可以解决掉这个问题

首先开启内核的936字符集支持

File systems —> Native Language Support —> (utf8) Default NLS Option ///此括号内为utf8 <*> Simplified Chinese charset (CP936, GB2312) <*> NLS ISO 8859-1 (Latin 1; Western European Languages) <*> NLS UTF-8 DOS/FAT/NT Filesystems —> (936) Default codepage for FAT (utf8) Default iocharset for FAT

挂载U盘或SD

在挂载SD卡或者U盘的时候不要使用默认的配置,使用下面的命令来挂载就好了:

mount -t vfat /dev/sda1 /mnt -o codepage=936,iocharset=utf8

最后给出一个可以linux下创建多层的目录的函数类似于:

mkdir -p /mnt/dir1/dir2/dir4 static int do_mkdir(const char *path, mode&#95;t mode) { struct stat st; int status = 0; if (stat(path, &st) != 0) { if (mkdir(path, mode) != 0 && errno != EEXIST) status = -1; } else if (!S_ISDIR(st.st_mode)) { errno = ENOTDIR; status = -1; } return(status); } int mkpath(const char *path, mode&#95;t mode) { char *pp; char *sp; int status; char *copypath = strdup(path); status = 0; pp = copypath; while (status == 0 && (sp = strchr(pp, /)) != 0) { if (sp != pp) { *sp = \0; status = do_mkdir(copypath, mode); *sp = /; } pp = sp + 1; } if (status == 0) status = do_mkdir(path, mode); free(copypath); return (status); }
<

免责声明:文章内容来自互联网,本站不对其真实性负责,也不承担任何法律责任,如有侵权等情况,请与本站联系删除。
转载请注明出处:解决Linux下fat32创建中文路径Windows下不识别 https://www.yhzz.com.cn/a/22096.html

上一篇 2023-08-21
下一篇 2023-08-21

相关推荐

联系云恒

在线留言: 我要留言
客服热线:400-600-0310
工作时间:周一至周六,08:30-17:30,节假日休息。