V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
shyrock
V2EX  ›  程序员

跨平台文件名乱码问题

  •  
  •   shyrock · 50 天前 · 645 次点击
    这是一个创建于 50 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我用一台 win10 共享盘作为电影存储。 用 OpenWRT 跑下载软件,下载电影到共享盘上。

    发现下载的电影,如果文件名(或者文件夹名)含中文,在 OpenWRT 中看是中文,在 win10 中看就成了乱码。 比如在 OpenWRT 中文件名是“c 租 c 司 j.1976.BD1080p.HDR.中文字幕”。 到了 win10 中就成了“c租c司j.1976.BD1080p.HDR.中文字幕”

    网上早了很久,发现问题是 OpenWRT 的文件名是 utf8 编码的,但是 win10 用 iso8859-1 编码。 我用 python 写一段代码:

    text = b"c租c司j.1976.BD1080p.HDR.中文字幕"
    
    bytes_text = text.decode("UTF-8")
    string = bytes_text.encode("ISO8859-1")
    
    print(string)
    

    可以成功消除乱码。

    但是问题是,我并不想写个脚本随时运行去修改电影的名字(如何触发,如何避免修改到非 utf8 的文件名等都是问题)。 讲道理更合理的办法是让 win10 支持正确显示 utf8 的文件名,但是似乎在微软的网站没有找到合适的方法(说的是在区域的高级设置中勾选 unicode 支持的 beta 功能选项,然而并无卵用。

    不知道各位有什么高招没有?

    2 条回复
    pckillers
        1
    pckillers  
       50 天前
    既然你 win10 共享盘的机器也得跟着 openwrt 一起开机才能下载。。。 为啥不直接用 windows 的下载客户端下载?
    shyrock
        2
    shyrock  
    OP
       50 天前
    @pckillers #1 OpenWRT 是家里的网关,有公网地址,p2p 下载更快,而且方便远程管理。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2579 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 04:34 · PVG 12:34 · LAX 20:34 · JFK 23:34
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.