• 请不要在回答技术问题时复制粘贴 AI 生成的内容
chiyagao
V2EX  ›  程序员

编写代码的工作区文件路径需要全部保持纯英文么?

  •  
  •   chiyagao · Aug 11, 2022 · 7046 views
    This topic created in 1553 days ago, the information mentioned may be changed or developed.

    2202 年了,想当年,小时候的老师一直说,为了避免不必要的 bug ,从电脑操作系统根路径一直到项目文件夹,全部用英文写。

    win 我好久没用了不知道,mac 我好像遇见过会把中文名文件转成拼音形式,暂时没写过同拼音不同中文字的文件名,大概。
    linux ,这种 centos ,逼格上去了,还是用英文吧。

    想问问大家,现在编写代码的工作区文件路径需要全部保持纯英文么?

    我还是看中文字,定位文件夹速度快、、、莓办法 银不了 尽梨了。
    56 replies  •  2022-08-13 15:45:07 +08:00
    eason1874
    eason1874
    Aug 11, 2022
    1
    用英文,加起来也没几个单词
    tomczhen
    tomczhen
    Aug 11, 2022 via Android❤️1
    2
    不考虑跨平台带来的文件系统差异造成的文件路径合法字符集、编码不一样这个问题,现代开发语言只要合理的使用是不用特别在意这块的。

    但是你架不住各种不正确的文件路径操作代码,毕竟很多人就是真的是:在我机器上是好的。
    Ediacaran
    Ediacaran
    Aug 11, 2022❤️10
    3
    需要,这样在终端打路径的时候不用切输入法
    rpman
    rpman
    Aug 11, 2022 via iPhone❤️4
    4
    用英文路径可以节省 debug 时间
    用中文路径可以帮人 debug 🐶
    GP1
    GP1
    Aug 11, 2022
    5
    单词就那么几个,用多了也就那样,说白了还是你不肯走出舒适区,那你说个屁。
    QingXuJiaZhi
    QingXuJiaZhi
    Aug 11, 2022
    6
    自己一个人用的环境可以用中文字,毕竟好不好用自己说了算,不会影响别人,遇到问题也能自己解决。
    horseInBlack
    horseInBlack
    Aug 11, 2022
    7
    以前学 Python2 、PHP5 等的教程,都要学如何设置字符编码避免乱码,现在好像不用这样了

    不过操作 Linux 服务器的时候,shell 的中文注释啥的会乱码,可以专门设置但是没必要,一般就简单英文描述下就行了

    不过我倒是遇到一个问题,告诉别人 Chrome 设置启动项没生效反而有了新的 bug ,网上、周围的人都没遇到过
    后来一个经验丰富的老大哥发现,那个用户设置启动项的时候用户资料文件夹中间是空格,可能是因为这样设置没成功,我们自己都习惯文件夹命名用 - 或者 _ 没注意到
    renmu
    renmu
    Aug 11, 2022 via Android
    8
    要,因为如果有不兼容的,你得花非常多的时间来调试。
    weichengwu
    weichengwu
    Aug 11, 2022 via iPhone❤️33
    9
    LotusChuan
    LotusChuan
    Aug 11, 2022
    10
    个人习惯吧,如果乐于用中文那应该也会乐于解决用中文可能带来的问题。用英文对我来说主要是输入法切换的问题,图形化界面还不明显;但是命令行就影响比较大了,比如我在用 vim 编辑 main.cpp ,然后想打开./测试.cpp ,那我至少得按两次中英文切换(一次切成中文输入“测试”,一次切回英文输入“.”),在频繁切换文件的时候影响还是挺大的。
    Leoooooo
    Leoooooo
    Aug 11, 2022
    11
    用单词方便你我他
    nightwitch
    nightwitch
    Aug 11, 2022
    12
    在 Windows 平台想要正确处理非 ASCII 字符串是个比较麻烦的事情,尤其是包含非 BMP 平面的字符,有的 API 即使是 Unicode 版本也只能正确处理 BMP 平面内的字符,比如 lstrlenW 函数计算 `𪚥👿🇨🇳`字符串的长度,会返回 8
    zhangxzh
    zhangxzh
    Aug 11, 2022 via Android
    13
    随便去用,仍不支持的东西,仍有兼容性问题的东西,扔了吧
    Vegetable
    Vegetable
    Aug 11, 2022
    14
    @weichengwu 太真实了,这玩意翻译一遍没人认识
    QingXuJiaZhi
    QingXuJiaZhi
    Aug 11, 2022❤️1
    15
    @weichengwu 中文真的非常清晰简洁。
    MajestySolor
    MajestySolor
    Aug 12, 2022
    16
    用中文字符必然出稀奇古怪的问题,不是这里出问题就是那里出问题,不是今天出问题就是明天出问题。
    spediacn
    spediacn
    Aug 12, 2022
    17
    做外包的时候一个全角字符都能惹出巨大麻烦,不仅仅不能用中文写,而且还得关掉输入法。全程英文,如果可以的话,操作系统都用英文,这样就不会忘记设置字符集惹出麻烦。有些老外真的烦,用 utf-8 死活不认,非得 iso-8859-1
    js8510
    js8510
    Aug 12, 2022
    18
    你老师是过来人,他说的对。
    我想起来一个故事:
    我在外企,都是英文。又一次肯定是个中国同事在提交的 PR 里面加了个中文逗号:"," 。结果把某个自动集成平台搞挂了。。因为后端的 sql database 默认是不支持中文字符的。

    结果两个外国人 debug 几个小时没搞明白知道我出现一眼就看出来 , != ,
    seanzxx
    seanzxx
    Aug 12, 2022
    19
    用英文主要是速度快呀,中文还要用输入法,多麻烦。
    kkocdko
    kkocdko
    Aug 12, 2022
    20
    对于用户,我们要支持空格 /非 ascii 路径。
    对于程序员,一般都会习惯用 ascii 非空格路径,terminal 里头敲路径方便。
    FrankHB
    FrankHB
    Aug 12, 2022
    21
    该用啥用啥,只要你清楚代价。
    最大化可移植性不是目的,否则干脆把 MS-DOS 的 8.3 也支持了,但一般显然没必要。
    编码么同一个环境通常不是问题,但不排除比较极端的例外(比如 Windows 下升级 hg 版本可能活久见乱码)。
    不过就算不考虑这些,只要可能换系统玩,文件系统大小写问题也够你喝一壶了。( NTFS 现在虽然支持大小写敏感,但得单独设置,而且设置以后像一些 ps1 命令直接罢工了。)

    @nightwitch 非 BMP 问题还不如甩锅给 Unicode 自己。一开始就妄想 BMP 解决问题,直接搞出 UCS-2 半吊子,还要 UTF-8 擦屁股,又回过头另外擦出个 U+10FFFF 的 magic number 。这还没完,刷版本到处给跟不上的兼容,Han unification 漏去重之类的添乱不说,UTS#51 什么屑玩意儿……甚至还能遇到 zzzq 问题( https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p1949r7.html#all-emoji-become-excluded-instead-of-just-some ),xswl……
    即便是 BMP 在这里也还有问题,比如有多少用户敢确信清楚自己用的环境对 NFD/NFC/NFKC 的支持?能塞零宽和控制字符进去么?(虽然 OP 只是说中文基本不用管这破事。)(其实控制字符嘛,就是 ASCII 也有这个问题,但很容易限制;关键差别是 Unicode 的破烂即便不考虑版本都不是能指望人能枚举完的。)
    akring
    akring
    Aug 12, 2022
    22
    @Vegetable #14 Lingdaotong - Gongzhongcanyu - Gongzhongtongji
    JustSong
    JustSong
    Aug 12, 2022 via Android
    23
    @Ediacaran 不知道有没有可以补全拼音成中文的 shell 插件
    bear1man
    bear1man
    Aug 12, 2022
    24
    太有必要了,你完全不知道什么时候会出幺蛾子。
    个人习惯,在 win 下,不止是工作路径,你的 username 最好也是英文,如果你登录微软账户,保证你的微软账户昵称是英文,不然它会给你改名。而且我个人是会打开全局 utf-8 功能的。尽管开了之后会有部分应用乱码。

    以上都是我用 win 多年总结的经验。顺便夸一句 mac os 在字符编码方面做的不错了,完全没遇到过乱码 /中文路径问题。
    murmur
    murmur
    Aug 12, 2022
    25
    要的,我真遇到过中文路径的 bug
    nothingistrue
    nothingistrue
    Aug 12, 2022
    26
    只要是纯的,不管是纯英文还是纯中文都是可以的。但是,现在没法纯中文。平常所说的中英文问题,实际上是纯英文跟中英混合的对比问题,自然是能用前者就用前者。
    jackmod
    jackmod
    Aug 12, 2022
    27
    要看写什么代码,以及编译系统是怎么处理路径的。
    顺便,转移到 linux 上面反而无需在意路径用什么字符了
    ClydeX
    ClydeX
    Aug 12, 2022
    28
    会遇到一些问题,但绝大部分都有解决方法,没啥
    Leonard
    Leonard
    Aug 12, 2022
    29
    自己一个人开发随便,否则尽量不要用中文路径
    zyy314680012
    zyy314680012
    Aug 12, 2022 via Android
    30
    反正我的 code 目录基本都英文的
    HeFengzz
    HeFengzz
    Aug 12, 2022
    31
    安装一些软件或游戏的时候,你不用英文(或带有空格)可能找不到游戏存档
    HeFengzz
    HeFengzz
    Aug 12, 2022
    32
    虽然有些无聊,但我觉得能给你一些参考

    [你的文件和目录的命名习惯是怎样的?]( https://www.v2ex.com/t/858464#reply21)
    xiaojun1994
    xiaojun1994
    Aug 12, 2022
    33
    两年前我用 flutter 遇到过中文目录不行的问题
    mknightoy
    mknightoy
    Aug 12, 2022
    34
    现在项目都是 utf-8 了用中文没什么问题,老项目除外

    另外别用中文的时候顺手输入了全角符号会坑死人
    chiyagao
    chiyagao
    OP
    Aug 12, 2022
    35
    哇咔咔咔
    haodingzan
    haodingzan
    Aug 12, 2022
    36
    @weichengwu 以前我坚持纯英文,点进来也是劝 OP 用英文,看了你的图才意识到我错哪了……
    cssk
    cssk
    Aug 12, 2022
    37
    那必须的,comment 都英文,打起来不用切换输入法
    7gugu
    7gugu
    Aug 12, 2022
    38
    如果要经常用终端切换路径的话,还是用全英文比较好,不用切换输入法这么麻烦
    akira
    akira
    Aug 12, 2022
    39
    即使是 2022 年了 ,你的 XP 用户 还是在用着 XP ,你的 IE6 用户还是在用着 IE6
    世界变了很多,但其实又没有
    AoEiuV020CN
    AoEiuV020CN
    Aug 12, 2022
    40
    我不用纠结,因为 android studio 压根不支持中文路径,
    coala
    coala
    Aug 12, 2022
    41
    就刚刚, 我 Nacos 还在中文目录启动失败找不到配置文件呢...

    我之前还有一个全角 A 引发的 Bug , 两 A 有啥区别? 给你看看

    苏A, 苏 A

    看出来差别了吗? 两个 A 不一样的..
    Jooooooooo
    Jooooooooo
    Aug 12, 2022
    42
    搞个最新的 emoji
    newmlp
    newmlp
    Aug 12, 2022
    43
    用中文纯属没事找事
    sutra
    sutra
    Aug 12, 2022
    44
    命令行还是英文更快。
    functioncloud
    functioncloud
    Aug 12, 2022❤️1
    45
    前段时间在 win 平板上装罗技驱动,安装器死活下载不了,后来发现是中文 username 导致找不到路径
    DonDonc
    DonDonc
    Aug 12, 2022❤️1
    46
    @coala 一直觉得某些领域还是留给 ASCII 就够了,特别是听过某些 URL 诈骗案例后。

    A U+0041 Latin Capital Letter A
    A U+FF21 Fullwidth Latin Capital Letter A
    Α U+0391 Greek Capital Letter Alpha
    А U+0410 Cyrillic Capital Letter A
    ᴀ U+1D00 Latin Letter Small Capital A
    ᴬ U+1D2C Modifier Letter Capital A
    𝙰 U+1D670 Mathematical Monospace Capital A
    𝖠 U+1D670 Mathematical Monospace Capital A
    𝖠 U+1D5A0 Mathematical Sans-Serif Capital A
    adoal
    adoal
    Aug 12, 2022
    47
    @tomczhen 还有文件名长度问题……以前遇到一个例子,各业务合作单位交过来的抗疫报道照片、视频等资料,没有统一标准,有些比较文青的拍摄者在文件名里会写很长的介绍,写得还很生动。拷在 NTFS 移动硬盘上没问题,要 FTP 上传到 Linux 服务器就不行。为啥呢,因 Linux VFS 的文件名在语义里不包括编码,就是 as-is bytes ,用 byte 为单位计长度的,整个路径全长最多 PATH_MAX 个 byte……而 NT 是 UTF-16 编码的,以 UTF-16 单元为单位计长度。即便不考虑 NT 可以用 UNC 的超长路径,只看 MAX_PATH 的限制,在 NT 上可以的,到 Linux VFS 就严重超长。
    duke807
    duke807
    Aug 12, 2022 via Android❤️2
    48
    中文文件名,zip 压缩包跨平台会乱码
    libook
    libook
    Aug 12, 2022
    49
    在 Unicode 支持好的环境、语言、框架上没必要完全杜绝使用中文,但是要不要用、什么时候用、怎么用得需要根据项目具体情况来看,评估一下用中文的收益和代价是啥。
    janxin
    janxin
    Aug 12, 2022
    50
    之前确实会有问题的,现在嘛...
    nick0x01
    nick0x01
    Aug 12, 2022
    51
    如果做到了行业的顶尖水平,并且能维持住地位,我想用什么就用什么,用户必须跟着学。
    如果没有,行业大佬用什么我用什么。
    killeder
    killeder
    Aug 12, 2022 via Android
    52
    不是闲的没事干或者不想自找麻烦就用英文,并且尽量不要用空格
    dcsuibian
    dcsuibian
    Aug 12, 2022
    53
    用中文怕的不是自己程序写错,而是 IDE 、构建工具等出问题,这种时候是解决不了的。

    但如果大家都不用中文,那么这种问题就不会得到开发者的重视。
    SeanTo
    SeanTo
    Aug 13, 2022 via Android
    54
    有必要。需要考虑的不仅仅是操作系统的问题,还有应用软件。我很早就习惯用英文名字,实在不会写的单词用拼音。有很多软件字符处理不好,但自己习惯直完全没有问题就发现不了,但架不住别人给你的文件会出现中文甚至含空格的情况。用过一个叫 EasyBuilder 的触摸屏开发环境,中文名打开编辑保存都没问题,一编译就通不过,查了很久才发现是文件名的问题。编译实际上是另外的程序完成的,开发程序的人可能并未考虑到字符兼容性问题,平常发现不了。
    gefranks
    gefranks
    Aug 13, 2022 via iPhone
    55
    用英文并且路径里面不要带空格,避免出现莫名其妙的问题搞半天
    lfzyx
    lfzyx
    Aug 13, 2022
    56
    所以现在的 00 后是连英文都退化成这样了?还把中文转成拼音,笑死
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   953 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 123ms · UTC 19:20 · PVG 03:20 · LAX 11:20 · JFK 14:20
    ♥ Do have faith in what you're doing.