CMD、PowerShell,乱码成这样,微软难道没有点 13 数么?

2017-09-30 15:42:26 +08:00
 Chigogo

不切换 UTF 8 乱码; 切换成 UTF 8 文字显示直接错位(截图为 utf 8 模式):

Win10 专业 1703 版 15063.632

8147 次点击
所在节点    问与答
46 条回复
Chigogo
2017-09-30 21:13:26 +08:00
@cchange 完全一样……
azh7138m
2017-09-30 21:21:00 +08:00
没有。
yarn 在 Windows 下画面太美,开发体验极差。
巨硬砍掉了 onedrive 无限存储我现在还很难受。
hugee
2017-09-30 21:59:17 +08:00
@ovear 是的。
geelaw
2017-09-30 22:24:33 +08:00
我理解 @rogwan 是在讽刺这样说的人(反语)

另外这明显是程序的问题,很多程序都能正常跑,为什么就 ffmpeg 不能?

另外,在这个情况下难道不是用 test.avs 代替那个长的路径即可吗?
Chigogo
2017-09-30 23:48:45 +08:00
@geelaw 其他程序也有。说实话……就是场景不是很多
Chigogo
2017-10-01 00:03:54 +08:00
@geelaw avs 有小问题,也可能是 frameserver 的问题。视频直出会声音爆破。
wdlth
2017-10-01 00:58:00 +08:00
命令提示符切成 UTF-8 编码,用 Python 执行 utf-8 字符集的文件容易出现各种奇葩 IO Error ……
wengjin456123
2017-10-01 01:17:13 +08:00
这是我用 mac 的原因,命令行这块,微软确实没点 B 数
yangff
2017-10-01 01:24:48 +08:00
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
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,是一个问题我就不重复发了。(看起来这个话题无人问津的样子)
msg7086
2017-10-01 07:57:51 +08:00
首先你要搞清楚到底是 CMD/PowerShell 有问题还是 ConHost 有问题。

很多时候人们老喜欢把 ConHost 的锅甩给 Shell。

ConHost 有问题的话,你就算是掏出 Bash Zsh Fish Dash,一样炸穿。

老老实实换个好点的 Term 吧,ConEmu / Cmder。
mohoumk2
2017-10-01 08:06:42 +08:00
@ovear 自动脑补成 B 树就好
kenshinji
2017-10-01 09:17:19 +08:00
win 下请用 cmder
watara
2017-10-01 10:30:50 +08:00
@imydou 我也是,不是很喜欢很多所谓的“梗”,不明白好好说话很难吗?
expy
2017-10-01 11:27:55 +08:00
用 Linux 跑 vapoursynth 吧。
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 是干这事的
Chigogo
2017-10-01 13:44:08 +08:00
@g00001 老铁,扎心了。
@kenshinji @msg7086 谢谢推荐。
lxml
2017-10-01 13:47:45 +08:00
个人以我,微软的命令行跟 Android 的权限管理一样基本属于积弊过深,无可救药,除了回炉重练,全面模仿 linux 的没有第二条路
belleveinvis
2017-10-01 18:42:31 +08:00
@icylogic
CONHOST 的源码我都不想去看它,满屏的汇编,强行指定内存布局,因为要兼容某个靠直接写内存写屏的程序……

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/394894

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX