iocharset=utf8 的目的是什么?

cod*_*mok 5 fstab mount samba

iocharset=utf8将 Windows SMB 共享挂载到 Linux 时,我几乎在任何地方都看到了推荐。

我已将 vhdx 文件挂载到 Ubuntu VM,我想确保我从 Ubuntu VM 写入磁盘的任何文件将来都可以从 Windows 读取。因此我有两个问题:

  1. 这是什么iocharset=utf8作用?
  2. 我是否也应该将此选项应用于 Ubuntu VM 中 vhdx 的 fstab,而不仅仅是 SMB 共享?

Shi*_*hah 6

Linux 中挂载的默认字符编码是 iso8859-1。这种编码是传统的,仅支持 256 个字符。所有现代系统都应该使用 utf-8,但我认为出于兼容性原因,默认值保留为 ISO8859-1。因此,在安装 Windows 共享时添加 iocharset=utf8 始终是个好主意。此外,许多网站在挂载时强制执行 filemode/dirmod 777,我认为这是不必要的。我使用的挂载命令是,

sudo mount -t cifs //SERVER/FOLDER /mnt/FOLDER -o username=USER,domain=DOMAIN,iocharset=utf8
Run Code Online (Sandbox Code Playgroud)


The*_*rer 4

iocharset=utf8设置安装驱动器或网络共享时使用的编码。

根据维基百科:

UTF-8 is a character encoding capable of encoding all possible characters, or code points, defined by Unicode.
Run Code Online (Sandbox Code Playgroud)

这几乎是一项安全功能,只是为了确保 Ubuntu 能够以可读格式呈现所有文本(正确显示),并以其他操作系统可读的格式保存所有内容。

您当然可以将此选项添加到您安装的任何内容中,但除非您遇到文本或文件路径问题,否则无需添加它。