问题描述
如何找出当前文件系统使用的字符集编码以及如何将其更改为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-like系统上,文件名的编码不是在文件系统级别设置的,而是在用户环境中设置的。检查locale
的输出,并查看点后的内容-例如,在我的情况下为LANG=en_US.UTF-8
,因此我环境中的文件名被解释为UTF-8。这是Ubuntu中的默认设置。
answer from Dennis Williamson与需要转换的特殊文件系统类型相关,由于您的mount
和cat /etc/fstab
的输出显示出您的情况并非如此,因此我不打算尝试解决此问题。
次佳办法
您没有说什么文件系统,但是您可以查看mount
的输出,该输出在我的一个系统上当前显示iso9660文件系统和几个vfat utf8文件系统。您还可以查看/etc/fstab
的内容,这是您设置它们或已设置它们的位置。请参阅man mount
,其中显示NTFS和jfs还有两个具有该选项的位置。