如何找出当前文件系统使用什么字符编码,以及如何将其更改为UTF-8?
编辑:
这是mount的输出:
/dev/sdb6 on / type ext3 (rw,relatime,errors=remount-ro) tmpfs on /lib/init/rw type tmpfs (rw,nosuid,mode=0755) /proc on /proc type proc (rw,noexec,nosuid,nodev) sysfs on /sys type sysfs (rw,noexec,nosuid,nodev) varrun on /var/run type tmpfs (rw,nosuid,mode=0755) varlock on /var/lock type tmpfs (rw,noexec,nosuid,nodev,mode=1777) udev on /dev type tmpfs (rw,mode=0755) tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev) devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620) fusectl on /sys/fs/fuse/connections type fusectl (rw) lrm on /lib/modules/2.6.27-11-generic/volatile type tmpfs (rw,mode=755) securityfs on /sys/kernel/security type securityfs (rw) binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,noexec,nosuid,nodev) gvfs-fuse-daemon on /root/.gvfs type fuse.gvfs-fuse-daemon (rw,nosuid,nodev)
这里是“cat / etc / fstab”的输出
# /etc/fstab: static file system information. # # <file system> <mount point> <type> <options> <dump> <pass> proc /proc proc defaults 0 0 # /dev/sdb7 UUID=50d660f1-1948-41e1-96af-3cb9bca338dd / ext3 relatime,errors=remount-ro 0 0 # /dev/sdb8 UUID=efaee412-8e29-4f65-927d-f57252451088 none swap sw 0 0
在类Unix系统上,文件名的编码不是在文件系统级设置的,而是在用户环境中设置的。 检查locale的输出并查看点后面的内容 – 例如,在我的情况下, LANG=en_US.UTF-8 ,因此我环境中的文件名被解释为UTF-8。 这是Ubuntu中的默认设置。
Dennis Williamson的答案与需要翻译的特殊文件系统types相关,我不想试图解决这个问题,因为mount和cat /etc/fstab显示不是你的情况。
你没有说什么文件系统,但是你可以看看在我的一个系统当前显示一个iso9660文件系统和几个vfat的是utf8的mount的输出。 您也可以查看/etc/fstab的内容,这是您设置它们的位置或者已经设置的位置。 看到man mount显示NTFS和jfs是另外两个有这个选项的。
Ubuntu默认使用UTF-8编码,看起来你没有改变它。 您可以使用不同的编码文件名称。 在这种情况下,你可以使用convmv来解决这个问题。
总之,你不可能真的。
有两件事情,文件名的编码和文件中数据的编码。 在这两种情况下,文件系统将只存储原始字节。 用户确定他们是用户想要的编码。