在 Ubuntu 中将文件系统编码更改为 UTF-8

在 Ubuntu 中将文件系统编码更改为 UTF-8

如何找出当前文件系统使用的字符集编码以及如何将其更改为 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

答案1

在类 Unix 系统中,文件名的编码不是在文件系统级别设置的,而是在用户环境中设置的。检查 的输出locale并查看点后面的内容 — 例如,在我的情况下LANG=en_US.UTF-8,因此我的环境中的文件名被解释为 UTF-8。这是 Ubuntu 中的默认设置。

丹尼斯·威廉姆森的回答与需要翻译的特殊文件系统类型相关,并且我并不试图深入探讨这个问题,因为您的输出mountcat /etc/fstab显示这不是您的情况。

答案2

您没有说明是什么文件系统,但是您可以查看mount我的某个系统上的输出,其中当前显示一个 iso9660 文件系统和几个 vfat 文件系统(utf8)。您还可以查看内容,看看/etc/fstab您设置它们的位置或它们已经设置。查看man mount显示 NTFS 和 jfs 是另外两个具有该选项的文件系统。

答案3

Ubuntu 默认使用 UTF-8 编码,似乎你没有更改它。你可以使用不同的编码来命名文件名。在这种情况下,你可以使用康维来修复这个问题。

答案4

简而言之,你真的不能。

有两件事,文件名的编码和文件中数据的编码。在这两种情况下,文件系统都会只是存储原始字节。用户需要确保它们是用户想要的编码。

相关内容