Board logo

标题: [其他] [已解决]怎么让 cmd 支持 utf-8 [打印本页]

作者: newswan    时间: 2021-4-13 02:38     标题: [已解决]怎么让 cmd 支持 utf-8

本帖最后由 newswan 于 2021-4-23 22:54 编辑

要处理的文件是utf-8,批处理文件也是utf-8。
如果有中文字符,第三方的 mobaxterm mysys,能正确运行。
使用 cmd 设置成65001 也不行,请问该怎么办?
作者: Batcher    时间: 2021-4-13 08:58

回复 1# newswan


    把txt文件、bat文件、如何处理,都发出来看看。
作者: newswan    时间: 2021-4-13 16:07

本帖最后由 newswan 于 2021-4-13 16:52 编辑

test.bat
  1. echo "啊" | find "啊"
  2. echo "啊" | findstr "啊"
  3. echo "啊" | grep '啊'
复制代码
chcp 936
命令行 批处理 find findstr 正确

chcp 65001
命令行 批处理 find grep 正确
作者: newswan    时间: 2021-4-13 16:12

本帖最后由 newswan 于 2021-4-13 16:52 编辑

test.bat
  1. find "啊" text.txt
  2. findstr "啊" text.txt
  3. grep '啊' text.txt
复制代码
txt bat 936  
命令行 批处理 find findstr 正确

txt bat 65001
命令行 批处理 find 正确
作者: newswan    时间: 2021-4-13 16:35

本帖最后由 newswan 于 2021-4-13 16:51 编辑

中文支持测试

936  :  find findstr 正确
65001:  find grep 正确

grep 的匹配模式 用 '' 或者 不用 ""  就正确了


只有 find 全部支持,但 find 不支持正则表达式
作者: smss    时间: 2021-4-13 16:40

解决Bat保存为UTF8时乱码
  1. reg add "HKCU\Console\%%SystemRoot%%_System32_cmd.exe" /f /v "CodePage" /t REG_DWORD /d 65001
  2. reg add "HKCU\Console\%%SystemRoot%%_System32_cmd.exe" /f /v "WindowSize" /t REG_DWORD /d 1572944
  3. reg add "HKCU\Console\%%SystemRoot%%_System32_cmd.exe" /f /v "FontSize" /t REG_DWORD /d 786432
  4. reg add "HKCU\Console\%%SystemRoot%%_System32_cmd.exe" /f /v   "FontFamily" /t REG_DWORD /d 54
  5. reg add "HKCU\Console\%%SystemRoot%%_System32_cmd.exe" /f /v "FontWeight" /t REG_DWORD /d 400
  6. reg add "HKCU\Console\%%SystemRoot%%_System32_cmd.exe" /f /v "FaceName" /t REG_SZ /d "Lucida Console"
复制代码

作者: newswan    时间: 2021-4-13 16:52

回复 6# smss


    谢谢。
作者: smss    时间: 2021-4-13 16:54

只要这2句就好 其它根据个人喜好
  1. reg add "HKCU\Console\%%SystemRoot%%_System32_cmd.exe" /f /v "CodePage" /t REG_DWORD /d 65001
  2. reg add "HKCU\Console\%%SystemRoot%%_System32_cmd.exe" /f /v "WindowAlpha" /t REG_DWORD /d 216
复制代码

作者: newswan    时间: 2021-4-13 17:17

回复 8# smss


    "WindowAlpha" 什么意思,命令执行成功,但注册表里没有添加对应的键值
作者: smss    时间: 2021-4-13 21:27

注册表上看到16进制(把开也可切10进制)批处理是10进制
作者: xczxczxcz    时间: 2021-4-14 10:08

回复 9# newswan


    alpha  和photoshop 上的alpha通道意思其实为一个意思,为透明层,0~FF ,这里为窗口透明度。
作者: newswan    时间: 2021-4-14 21:38

回复 11# xczxczxcz


谢谢
作者: 1152    时间: 2021-4-23 22:22

回复 1# newswan


    欢迎回来 一级士官 newswan
作者: newswan    时间: 2021-4-23 23:06

回复 13# 1152


    嘿嘿
作者: 1152    时间: 2021-4-23 23:08

本帖最后由 1152 于 2021-4-23 23:11 编辑

回复 14# 一级士官 newswan


    嘿嘿,你也没睡觉




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2