解决DOS窗口中显示UTF-8字符问题

如何在DOS窗口中显示UTF-8字符(CMD UTF-8)

命令行下显示 UTF-8 字符。

 

 

 

      由于 Windows版的 grep 在处理文件时,好像对UTF-8支持的非常的好,但是DOS窗口不能很好的显示出来。从网上搜索到的方法就是使用"chcp 65001"改变CMD中的代码页utf-8的代码。然后在窗口中输出UTF-8字符,但是这并不能完全把文字显示出来,汉字只能显示半个,通过网上说的不断的最大化和最小化窗口来达到完全显示的目的,这样的方法能解决部分问题,有的问题还是不能解决,比如有时执行下面的命令:


"C:/grep.exe -e "[^a-z^0-9]" C:/a.txt"后得到下面的结果,

C:/grep.exe: writing output: Permission denied
C:/grep.exe: writing output: Permission denied
C:/grep.exe: writing output: Permission denied


"a.txt"文件中的内容如下:

中国泄家运动aa22
泄中国泄中国
afadf544
了了否国家龙否认公


如果执行下面的命令:
"C:/grep.exe -e "[^a-z^0-9]" C:/a.txt>C:/aa.txt"后使用软件查看UTF-8编码的"aa.txt"文件话,能够看到被提取出来的汉字行。提取出来的文字如下:

中国泄家运动aa22
泄中国泄中国
了了否国家龙否认公

方法一:
      从上面看以看出既然能通过管道把标准输出输出到文件中,这样的话就通过一种变通的方法来显示UTF-8编码的汉字字符,使用一个能打开UTF-8编码的软件先打开上面的"aa.txt"文件,然后执行命令"C:/grep.exe -e "[^a-z^0-9]" C:/a.txt>C:/aa.txt",由于文件更新了并不定要文件中的内容更新了,只要文件的修改时间变了就算文件更新了。当文件一更新时一些能监视文件更新的软件就提示能文件更新了,而要求你点击确定要重新打开文件,这样就能实时的看到软件的输出结果了。

方法二:(默认你会使用VIM软件,不知道的到网上搜索一下)
     使用VIM软件来执行外部程序来显示软件的输出结果,VIM中使用":!"加要执行程序的程序来执行外部程序,这样只能在CMD中显示结果,把结果输出到VIM中的话使用下面的命令:
:!C:/grep.exe -e "[^a-z^0-9]" C:/a.txt>C:/aa.txt
      结果在VIM中显示出来如下的结果:(如果还是产生乱码的话,是你的VIM没有设置到位,自己搜索一下“vim utf-8 乱码”)
中国泄家运动aa22
泄中国泄中国
了了否国家龙否认公

 

你可能感兴趣的:(解决DOS窗口中显示UTF-8字符问题)