This page is part of a static HTML representation of the TiddlyWiki at https://wiki.fspark.me/#解决NFS中Windows乱码问题的新途径

此页面为TiddlyWiki生成的部分静态网页,全站请访问 https://wiki.fspark.me/#解决NFS中Windows乱码问题的新途径

解决NFS中Windows乱码问题的新途径

FSpark 2023年01月15日 10:03

先决条件:

  • 盘为 NTFS,ext4 等支持硬链的文件系统
  • 安装 Node.js 环境

网上目前的解决方案:

Windows 中官方的 NFS 支持提供的 mount 不支持 UTF-8 编码,导致了乱码的产生。如果需要 Windows 支持,考虑以下一些方法:

  • 使用 fuse-convmvfs 修改服务端文件的编码,详见此 Super User 上的回答。
  • 找一个别的 Windows 的 NFS 客户端。
  • 如果正在使用新版的 Windows 10,在区域设置中启用 Beta 版本的 UTF-8 支持。注意这可能会导致一部分软件出现乱码。

如果要取消挂载,使用 umount 即可。

一个 NFS 的简介 - LUG @ USTC

以下是结果:

  • fuse-convmvfs
    • 用了,但映射出来的盘文件列表是空的。(可能和不能硬链有关?)
  • 别的Windows NFS客户端
    • 还没试过
  • Windows Beta UTF-8 支持
    • 试过,会导致原本一些正常的软件出错,而且是有多离谱多离谱

新方案

受 fuse-convmvfs, pnpm 和 calibre 启发的,用硬连接映射出个音译后文件名的安全目录不就好了

用到两个库,自己缝合一下就好了

再指个路:packages/core/src/utils/index.ts/getOriginalDestPath()

什么?说了这么多要我自己缝合?

嗯,因为发现我的exFAT不支持硬链接甚至软连接就没心思再整了。嗯?你说为啥不用NTFS?我就从NTFS来的,正常的Android无法OTG挂载哦。

一个能被内核直接支持且性能优异的方案却落得如此下场。