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


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

Answers:


5

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

Dennis Williamson答案与需要翻译的特殊文件系统类型有关,我不打算涉足此问题,因为您的输出mountcat /etc/fstab表明这不是您的情况。


1
系统区域设置已经为en_US.UTF-8
杰克

1
我不认为这是真的。我的LANG-en_US.UTF8,但是Ubuntu将文件创建为us_ascii。Ubuntu似乎对编码文件系统级别没有任何作用。不幸的是
onknows

3

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


@Dennis,我发布了mount和“ cat / etc / fstab”的输出。似乎那里没有字符集编码信息。
杰克

您仍然没有说出要解决的文件系统/设备或特定的问题。正如Amir所说,您显然没有使用我提到的文件系统之一,并且您说的locale是正确的。有什么问题
暂停,直到另行通知。

@Dennis,您说安装输出显示您有一个iso9660文件系统。我已经发布了我的安装输出。我没有看到与您在输出中提到的“文件系统”相关的任何信息。您能帮我弄清楚吗?
杰克

文件系统是mount在中的“类型”列的输出中或下方的“类型”一词之后列出的内容/etc/fstab。在显示的输出中,“ ext3”是一个示例。iso9660文件系统是指CD-ROM。您要解决的问题是什么?
暂停,直到另行通知。

2

Ubuntu默认使用UTF-8编码,看来您没有更改它。您可以使用不同的编码来命名文件名。在这种情况下,您可以使用convmv进行修复。


-1

简而言之,您无法做到。

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.