想问问大家,现在编写代码的工作区文件路径需要全部保持纯英文么?
![]() | 1 eason1874 2022-08-11 19:45:50 +08:00 用英文,加起来也没几个单词 |
![]() | 2 tomczhen 2022-08-11 19:45:57 +08:00 via Android ![]() 不考虑跨平台带来的文件系统差异造成的文件路径合法字符集、编码不一样这个问题,现代开发语言只要合理的使用是不用特别在意这块的。 但是你架不住各种不正确的文件路径操作代码,毕竟很多人就是真的是:在我机器上是好的。 |
3 Ediacaran 2022-08-11 19:49:13 +08:00 ![]() 需要,这样在终端打路径的时候不用切输入法 |
4 rpman 2022-08-11 19:50:22 +08:00 via iPhone ![]() 用英文路径可以节省 debug 时间 用中文路径可以帮人 debug |
5 GP1 2022-08-11 19:50:50 +08:00 单词就那么几个,用多了也就那样,说白了还是你不肯走出舒适区,那你说个屁。 |
![]() | 6 cmdOptionKana 2022-08-11 19:51:55 +08:00 自己一个人用的环境可以用中文字,毕竟好不好用自己说了算,不会影响别人,遇到问题也能自己解决。 |
![]() | 7 horseInBlack 2022-08-11 19:52:44 +08:00 以前学 Python2 、PHP5 等的教程,都要学如何设置字符编码避免乱码,现在好像不用这样了 不过操作 Linux 服务器的时候,shell 的中文注释啥的会乱码,可以专门设置但是没必要,一般就简单英文描述下就行了 不过我倒是遇到一个问题,告诉别人 Chrome 设置启动项没生效反而有了新的 bug ,网上、周围的人都没遇到过 后来一个经验丰富的老大哥发现,那个用户设置启动项的时候用户资料文件夹中间是空格,可能是因为这样设置没成功,我们自己都习惯文件夹命名用 - 或者 _ 没注意到 |
8 renmu 2022-08-11 20:07:26 +08:00 via Android 要,因为如果有不兼容的,你得花非常多的时间来调试。 |
![]() | 9 weichengwu 2022-08-11 20:23:08 +08:00 via iPhone ![]() |
![]() | 10 LotusChuan 2022-08-11 20:36:47 +08:00 个人习惯吧,如果乐于用中文那应该也会乐于解决用中文可能带来的问题。用英文对我来说主要是输入法切换的问题,图形化界面还不明显;但是命令行就影响比较大了,比如我在用 vim 编辑 main.cpp ,然后想打开./测试.cpp ,那我至少得按两次中英文切换(一次切成中文输入“测试”,一次切回英文输入“.”),在频繁切换文件的时候影响还是挺大的。 |
![]() | 11 Leoooooo 2022-08-11 20:51:21 +08:00 用单词方便你我他 |
12 nightwitch 2022-08-11 20:55:40 +08:00 在 Windows 平台想要正确处理非 ASCII 字符串是个比较麻烦的事情,尤其是包含非 BMP 平面的字符,有的 API 即使是 Unicode 版本也只能正确处理 BMP 平面内的字符,比如 lstrlenW 函数计算 ``字符串的长度,会返回 8 |
![]() | 13 zhangxzh 2022-08-11 21:17:25 +08:00 via Android 随便去用,仍不支持的东西,仍有兼容性问题的东西,扔了吧 |
![]() | 14 Vegetable 2022-08-11 21:50:23 +08:00 @weichengwu 太真实了,这玩意翻译一遍没人认识 |
![]() | 15 cmdOptionKana 2022-08-11 23:27:16 +08:00 ![]() @weichengwu 中文真的非常清晰简洁。 |
![]() | 16 MajestySolor 2022-08-12 00:21:05 +08:00 用中文字符必然出稀奇古怪的问题,不是这里出问题就是那里出问题,不是今天出问题就是明天出问题。 |
17 spediacn 2022-08-12 01:40:42 +08:00 做外包的时候一个全角字符都能惹出巨大麻烦,不仅仅不能用中文写,而且还得关掉输入法。全程英文,如果可以的话,操作系统都用英文,这样就不会忘记设置字符集惹出麻烦。有些老外真的烦,用 utf-8 死活不认,非得 iso-8859-1 |
18 js8510 2022-08-12 01:53:05 +08:00 你老师是过来人,他说的对。 我想起来一个故事: 我在外企,都是英文。又一次肯定是个中国同事在提交的 PR 里面加了个中文逗号:"," 。结果把某个自动集成平台搞挂了。。因为后端的 sql database 默认是不支持中文字符的。 结果两个外国人 debug 几个小时没搞明白知道我出现一眼就看出来 , != , |
19 seanzxx 2022-08-12 03:18:52 +08:00 用英文主要是速度快呀,中文还要用输入法,多麻烦。 |
![]() | 20 kkocdko 2022-08-12 03:38:14 +08:00 对于用户,我们要支持空格 /非 ascii 路径。 对于程序员,一般都会习惯用 ascii 非空格路径,terminal 里头敲路径方便。 |
![]() | 21 FrankHB 2022-08-12 05:00:35 +08:00 该用啥用啥,只要你清楚代价。 最大化可移植性不是目的,否则干脆把 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 的破烂即便不考虑版本都不是能指望人能枚举完的。) |
![]() | 24 bear1man 2022-08-12 09:12:39 +08:00 太有必要了,你完全不知道什么时候会出幺蛾子。 个人习惯,在 win 下,不止是工作路径,你的 username 最好也是英文,如果你登录微软账户,保证你的微软账户昵称是英文,不然它会给你改名。而且我个人是会打开全局 utf-8 功能的。尽管开了之后会有部分应用乱码。 以上都是我用 win 多年总结的经验。顺便夸一句 mac os 在字符编码方面做的不错了,完全没遇到过乱码 /中文路径问题。 |
![]() | 25 murmur 2022-08-12 09:14:10 +08:00 要的,我真遇到过中文路径的 bug |
26 nothingistrue 2022-08-12 09:15:43 +08:00 只要是纯的,不管是纯英文还是纯中文都是可以的。但是,现在没法纯中文。平常所说的中英文问题,实际上是纯英文跟中英混合的对比问题,自然是能用前者就用前者。 |
27 jackmod 2022-08-12 09:18:54 +08:00 要看写什么代码,以及编译系统是怎么处理路径的。 顺便,转移到 linux 上面反而无需在意路径用什么字符了 |
![]() | 28 ClydeX 2022-08-12 09:20:20 +08:00 会遇到一些问题,但绝大部分都有解决方法,没啥 |
![]() | 29 Leonard 2022-08-12 09:21:20 +08:00 自己一个人开发随便,否则尽量不要用中文路径 |
30 zyy314680012 2022-08-12 09:22:54 +08:00 via Android 反正我的 code 目录基本都英文的 |
![]() | 31 HeFengzz 2022-08-12 09:24:18 +08:00 安装一些软件或游戏的时候,你不用英文(或带有空格)可能找不到游戏存档 |
![]() | 32 HeFengzz 2022-08-12 09:25:52 +08:00 |
33 xiaojun1994 2022-08-12 09:45:39 +08:00 两年前我用 flutter 遇到过中文目录不行的问题 |
34 mknightoy 2022-08-12 09:56:14 +08:00 现在项目都是 utf-8 了用中文没什么问题,老项目除外 另外别用中文的时候顺手输入了全角符号会坑死人 |
![]() | 35 chiyagao OP 哇咔咔咔 |
![]() | 36 haodingzan 2022-08-12 10:27:15 +08:00 @weichengwu 以前我坚持纯英文,点进来也是劝 OP 用英文,看了你的图才意识到我错哪了…… |
![]() | 37 cssk 2022-08-12 10:59:11 +08:00 那必须的,comment 都英文,打起来不用切换输入法 |
![]() | 38 7gugu 2022-08-12 13:28:19 +08:00 如果要经常用终端切换路径的话,还是用全英文比较好,不用切换输入法这么麻烦 |
![]() | 39 akira 2022-08-12 13:48:47 +08:00 即使是 2022 年了 ,你的 XP 用户 还是在用着 XP ,你的 IE6 用户还是在用着 IE6 世界变了很多,但其实又没有 |
![]() | 40 AoEiuV020CN 2022-08-12 16:38:49 +08:00 我不用纠结,因为 android studio 压根不支持中文路径, |
![]() | 41 coala 2022-08-12 16:39:46 +08:00 就刚刚, 我 Nacos 还在中文目录启动失败找不到配置文件呢... 我之前还有一个全角 A 引发的 Bug , 两 A 有啥区别? 给你看看 苏A, 苏 A 看出来差别了吗? 两个 A 不一样的.. |
42 Jooooooooo 2022-08-12 16:39:55 +08:00 搞个最新的 emoji |
![]() | 43 newmlp 2022-08-12 16:44:33 +08:00 用中文纯属没事找事 |
![]() | 44 sutra 2022-08-12 16:48:25 +08:00 命令行还是英文更快。 |
![]() | 45 functioncloud 2022-08-12 17:02:56 +08:00 ![]() 前段时间在 win 平板上装罗技驱动,安装器死活下载不了,后来发现是中文 username 导致找不到路径 |
46 DonDonc 2022-08-12 17:06:55 +08:00 ![]() @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 |
![]() | 47 adoal 2022-08-12 17:51:34 +08:00 @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 就严重超长。 |
48 duke807 2022-08-12 18:15:08 +08:00 via Android ![]() 中文文件名,zip 压缩包跨平台会乱码/div> |
![]() | 49 libook 2022-08-12 18:38:22 +08:00 在 Unicode 支持好的环境、语言、框架上没必要完全杜绝使用中文,但是要不要用、什么时候用、怎么用得需要根据项目具体情况来看,评估一下用中文的收益和代价是啥。 |
![]() | 50 janxin 2022-08-12 18:41:01 +08:00 之前确实会有问题的,现在嘛... |
51 nick0x01 2022-08-12 18:44:31 +08:00 如果做到了行业的顶尖水平,并且能维持住地位,我想用什么就用什么,用户必须跟着学。 如果没有,行业大佬用什么我用什么。 |
52 killeder 2022-08-12 19:07:00 +08:00 via Android 不是闲的没事干或者不想自找麻烦就用英文,并且尽量不要用空格 |
53 dcsuibian 2022-08-12 19:48:51 +08:00 用中文怕的不是自己程序写错,而是 IDE 、构建工具等出问题,这种时候是解决不了的。 但如果大家都不用中文,那么这种问题就不会得到开发者的重视。 |
54 SeanTo 2022-08-13 10:15:37 +08:00 via Android 有必要。需要考虑的不仅仅是操作系统的问题,还有应用软件。我很早就习惯用英文名字,实在不会写的单词用拼音。有很多软件字符处理不好,但自己习惯直完全没有问题就发现不了,但架不住别人给你的文件会出现中文甚至含空格的情况。用过一个叫 EasyBuilder 的触摸屏开发环境,中文名打开编辑保存都没问题,一编译就通不过,查了很久才发现是文件名的问题。编译实际上是另外的程序完成的,开发程序的人可能并未考虑到字符兼容性问题,平常发现不了。 |
![]() | 55 gefranks 2022-08-13 13:21:00 +08:00 via iPhone 用英文并且路径里面不要带空格,避免出现莫名其妙的问题搞半天 |
![]() | 56 lfzyx 2022-08-13 15:45:07 +08:00 所以现在的 00 后是连英文都退化成这样了?还把中文转成拼音,笑死 |