在 Windows 系统的命令行界面(cmd)下判断文件是否是 UTF-8 编码,可以使用 chcp 命令和 findstr 命令结合的方式。
具体步骤如下:
打开命令行界面(cmd),进入待检查文件所在的目录。
执行命令 chcp,查看当前命令行界面的代码页。如果代码页为 936,表示当前命令行界面为简体中文 GBK 编码。如果代码页为 65001,表示当前命令行界面为 UTF-8 编码。如果当前命令行界面不是 UTF-8 编码,则需要先将代码页设置为 UTF-8,可以执行命令 chcp 65001。
执行命令 findstr /I /V /L /G:"C:\path\to\utf8txt" "C:\path\to\file\to\checktxt",其中 /I 表示忽略大小写,/V 表示输出不匹配的行,/L 表示按照字面意义匹配,/G:"C:\path\to\utf8txt" 表示使用 utf8txt 文件中的字符集检查,"C:\path\to\file\to\checktxt" 表示待检查的文件名。执行此命令后,如果输出结果为空,则表示待检查的文件是 UTF-8 编码;如果输出结果不为空,则表示待检查的文件不是 UTF-8 编码。
注意事项:
utf8txt 文件中应包含 UTF-8 编码的所有字符,可以使用 Windows 上的文本编辑器(如 Notepad++)创建该文件,并将文件编码设置为 UTF-8。
如果待检查的文件名中包含空格或其他特殊字符,需要将文件名用双引号括起来。
此方法只能检查文件是否是 UTF-8 编码,不能判断文件的有效性和正确性。
命令行的乱码以及编码的问题的解决方法
解决命令行的乱码以及编码的问题
命令 chcp
功能:
显示或设置活动代码页编号
CHCP [nnn]
nnn 指定代码页编号。
不加参数键入 CHCP 显示活动代码页编号。
nnn指定一已有的'系统字符集,该字符集在CONFIGSYS文件中由COUNTRY命令定义。
在DOS下可以通过mode命令来设置代码页。
选定代码页: MODE CON[:] CP SELECT=yyy
代码页状态: MODE CON[:] CP [/STATUS]
按Windows+R组合键,然后输入cmd或者command打开命令提示符。
比如输入:mode con cp select=936,则表示显示简体中文。如果输入mode con cp select=437,则表示显示MS-DOS 美国英语,而中文显示将会是。
MS-DOS为以下国家和语言提供字符集:
代码页描述
1258 越南语
1257 波罗的语
1256 阿拉伯语
1255 希伯来语
1254 土耳其语
1253 希腊语
1252 拉丁 1 字符 (ANSI)
1251 西里尔语
1250 中欧语言
950 繁体中文
949 朝鲜语
936 简体中文(默认)
932 日语
874 泰国语
850 多语种 (MS-DOS Latin1)
437 MS-DOS 美国英语
//补充
dos指令:
chcp 65001 就是换成UTF-8代码页
chcp 936 可以换回默认的GBK
chcp 437 是美国英语
如何在DOS窗口中显示UTF-8字符
在中文Windows系统中,如果一个文本文件是UTF-8编码的,那么在CMDexe命令行窗口(所谓的DOS窗口)中不能正确显示文件中的内容。在默认情况下,命令行窗口中使用的代码页是中文或者美国的,即编码是中文字符集或者西文字符集。
如果想正确显示UTF-8字符,可以按照以下步骤 *** 作:
1、打开CMDexe命令行窗口
2、通过 chcp命令改变代码页,UTF-8的代码页为65001
chcp 65001
执行该 *** 作后,代码页就被变成UTF-8了。但是,在窗口中仍旧不能正确显示UTF-8字符。
3、修改窗口属性,改变字体
在命令行标题栏上点击右键,选择"属性"->"字体",将字体修改为True Type字体"Lucida Console",然后点击确定将属性应用到当前窗口。
这时使用type命令就可以显示UTF-8文本文件的内容了:
type filenametxt
4、通过以上 *** 作并不能完全解决问题,因为显示出来的内容有可能不完全。可以先最小化,然后最大化命令行窗口,文件的内容就完整的显示出来了。
;新建文件夹,输入Windows Registry Editor Version 500
[HKEY_CURRENT_USER\Console\%SystemRoot%_system32_cmdexe]
"CodePage"=dword:0000fde9
"FontFamily"=dword:00000036
"FontWeight"=dword:00000190
"FaceName"="Consolas"
"ScreenBufferSize"=dword:232900d2
"WindowSize"=dword:002b00d2
保存后,再更改名为cmdreg。
点击注册注册变即可永久更改系统编码当我们不加设置就编译时,相当于使用了参数:javac -encoding gbk XXjava,当然就会出现不兼容的情况。
解决方法:
1、转换成UTF-8编码格式,但仍然有错解决办法是:应该使用-encoding参数指明编码方式:javac -encoding UTF-8 XXjava
2、开始-->计算机-->鼠标反键(鼠标右键)-->属性-->高级系统设置-->环境变量-->系统变量新建。然后输入:“JAVA_TOOL_OPTIONS”变量,值为“-Dfileencoding=UTF-8”然后确定、确定、在确定后。新开命令行窗口,再次输入javac命令。问题一:一般情况下数据库进行数据 *** 作都是你一开始自定义的编码,如果你像使用其他编码就必须强制转换了,要你没打入强制装换的代码,数据库还是按默认编码格式运行的。 问题二:有可能是它保存时是使用的GB2312编码,所以必须得按这种编码去查询,不然即使有显示也会是乱码。 问题三:你需要的时候就可以进行编码转化,比如你的浏览器不支持你现在的编哗锭糕瓜蕹盖革睡宫精码格式。可以。 谢谢大家的帮忙,有些问题还请多多指教,现在略微清楚些了,学习中。。。这个跟活动控制台代码页有关。
如果要更改为 UTF-8,则需要运行 chcp 命令:
chcp 65001
有时新安装的系统可能在运行一些中文软件时显示错乱,可通过控制面板修改系统区域来管理这一行为: 控制面板-区域和语言-“管理”选项卡,更改“非 Unicode 程序的语言”为“中文(简体,中国)”。
修改对系统上所有账户都起作用;完成修改之后,需要重新启动计算机。<p>使用Windows下的cmd命令,可以使用type或more命令来查看文件的编码格式,用法示例如下:</p><p>type filename /u</p><p>more filename /e</p><p>其中/u参数表示使用Unicode编码,/e参数表示使用extended ASCII编码。要查看多个文件编码格式,可以使用for循环来批量遍历文件,示例如下:</p><p>for %a in (txt) do type %a /u</p>
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)