不切换 UTF 8 乱码; 切换成 UTF 8 文字显示直接错位(截图为 utf 8 模式):
Win10 专业 1703 版 15063.632
1
hjc4869 2017-09-30 15:50:22 +08:00 2
当然没有,在微软我们文件名和路径都是用英文的。
|
2
charove 2017-09-30 15:51:15 +08:00
就我一个人能看到图片吗??
cmd.gif |
3
hjc4869 2017-09-30 15:55:26 +08:00 2
另外不支持中文路径是程序不用 unicode api 的锅,跟 CMD 没啥关系。
|
4
stanjia 2017-09-30 16:15:56 +08:00
此 cmd 确实不是给人类用的.
|
5
h4x3rotab 2017-09-30 16:19:24 +08:00
微软的原罪之一
|
6
cyr1l 2017-09-30 16:32:37 +08:00 via iPhone
命令行工具是我选择 Mac 的原因之一。
|
7
imydou 2017-09-30 16:38:55 +08:00 1
只有我是冲着
13 数 进来的吗? low |
9
crash 2017-09-30 18:38:25 +08:00 1
微软引以为傲的改写模式,经常弱鸡一样的出现,这是 mac 比 windows 好用的最大因素。
|
10
belleveinvis 2017-09-30 18:40:22 +08:00
知道,但我不能说
|
11
belleveinvis 2017-09-30 18:41:06 +08:00 1
@Chigogo
CONHOST 比你想象的麻烦得多,比如直到 Vista CONHOST 的输出都是直通显卡的,文字可以画到窗口外面 |
12
rogwan 2017-09-30 19:05:58 +08:00 via Android 1
Linux 默认 utf-8,没什么乱七八糟的 bom,减少多少麻烦啊。微软不和 Linux 阵营统一步伐,明明就是故意的。
|
13
EricCartman 2017-09-30 19:08:10 +08:00 1
楼上已出现俩位微软员工😂
|
14
qdwang 2017-09-30 19:16:20 +08:00 via iPhone
说明这个需求没有强烈到不惜成本来解决这个问题
|
15
just1 2017-09-30 19:41:07 +08:00 via Android
+1,不知道怎么解决
|
16
ovear 2017-09-30 19:49:45 +08:00 via Android 7
觉得 b 数这个词很脏
|
20
cchange 2017-09-30 20:47:33 +08:00 via iPhone
powershell 会不会好一些
|
22
azh7138m 2017-09-30 21:21:00 +08:00 via Android
没有。
yarn 在 Windows 下画面太美,开发体验极差。 巨硬砍掉了 onedrive 无限存储我现在还很难受。 |
24
geelaw 2017-09-30 22:24:33 +08:00
|
27
wdlth 2017-10-01 00:58:00 +08:00
命令提示符切成 UTF-8 编码,用 Python 执行 utf-8 字符集的文件容易出现各种奇葩 IO Error ……
|
28
wengjin456123 2017-10-01 01:17:13 +08:00
这是我用 mac 的原因,命令行这块,微软确实没点 B 数
|
29
yangff 2017-10-01 01:24:48 +08:00
|
30
icylogic 2017-10-01 03:20:04 +08:00
cmd 有这样的问题我完全可以理解。但是 Powershell 还这样,emmm
开了个 issue,大家都去抱怨的话,M$才可能重视这问题吧 https://github.com/PowerShell/PowerShell/issues/4964 https://i.loli.net/2017/10/01/59cfedb4dbc3d.png |
31
icylogic 2017-10-01 06:03:06 +08:00
@belleveinvis
https://wpdev.uservoice.com/forums/266908-command-prompt-console-bash-on-ubuntu-on-windo/suggestions/14849781-support-cjk-ime-under-cp65001 你提的 uservoice 是关于这个话题的么。管 Powershell 项目的那个 Principal 在 issue 里告诉我 Powershell 解决不了,是 Windows Console 的问题,让我贴在 uservoice,是一个问题我就不重复发了。(看起来这个话题无人问津的样子) |
32
msg7086 2017-10-01 07:57:51 +08:00 2
首先你要搞清楚到底是 CMD/PowerShell 有问题还是 ConHost 有问题。
很多时候人们老喜欢把 ConHost 的锅甩给 Shell。 ConHost 有问题的话,你就算是掏出 Bash Zsh Fish Dash,一样炸穿。 老老实实换个好点的 Term 吧,ConEmu / Cmder。 |
34
kenshinji 2017-10-01 09:17:19 +08:00 via iPhone
win 下请用 cmder
|
36
expy 2017-10-01 11:27:55 +08:00 1
用 Linux 跑 vapoursynth 吧。
|
37
g00001 2017-10-01 12:45:27 +08:00
Windows 有 VS,C#这些东西,纯玩命令行的时候不多,所以 CMD 弱。
CMD 内部也是 Unicode,但做了 ANSI 转换,对 UTF8 的支持很烂。类似的 Windows 上的一些开发工具:VB,易语言都是这个路数,不能愉快的 Unicode 经常遇到乱码。 换任何一个支持 Uniocde 的编程语言都比用 CMD 方便,例如用 aardio 写几句代码调用 ffmpeg import console import process.popen prcs = process.popen("D:\ffmpeg\bin\ffmpeg.exe","-i","d:\test.mkv") prcs.codepage = 65001;//使用 UTF8 编码 for( all,out,err in prcs.each() ){ console.log( out,err ); } console.pause(); 还可以给 ffmpeg 来个带界面的: windows 是干这事的 |
39
lxml 2017-10-01 13:47:45 +08:00 via Android
个人以我,微软的命令行跟 Android 的权限管理一样基本属于积弊过深,无可救药,除了回炉重练,全面模仿 linux 的没有第二条路
|
40
belleveinvis 2017-10-01 18:42:31 +08:00 1
@icylogic
CONHOST 的源码我都不想去看它,满屏的汇编,强行指定内存布局,因为要兼容某个靠直接写内存写屏的程序…… |
41
belleveinvis 2017-10-01 18:45:47 +08:00
@icylogic 你可以去圈 Rich Turner,整个 console 的老大
Github 上面叫 bitcrazed |
42
hyperdak 2017-10-01 20:02:29 +08:00
字符集的事,python 心里没点 B 数?
|
43
ysc3839 2017-10-01 20:30:54 +08:00 via Android
发现很多人搞混了 Terminal 和 Shell。Shell 的话就是 cmd powershell bash 这些。而 Terminal 是你看到的那个命令行窗口。
Windows 的 conhost 功能差,这个是公认的。我认为微软也知道。但在微软修复 /改进之前,我选择第三方的 Terminal 如 ConEmu。 |
44
troywinter 2017-10-02 21:33:53 +08:00
所以根据这个帖子的各个回答,大家给你的一致建议是,赚钱去买台 mac,Windows 就是这么工作的,你用的方法不对。。。
|
45
Chigogo OP @troywinter 我有 Mac ……
|
46
gnaggnoyil 2017-10-03 04:40:06 +08:00
emmmmmm 你指望 ffmpeg 这种一个 char 能同时当成 byte buffer 和 code point 的典型 C 程序碰到非 ASCII 编码能吐出什么象牙来.更何况 windows 下经过 mingw 的 glibc 那更是屎上加屎.LZ 最好还是通过 pipe 的方式喂输入吧.
|