Windows 批处理文件的编码格式
2010-08-11 00:37
666 查看
"控制台窗口 属性 -> 选项 -> 默认代码页" 中可以设置当前代码页.
1>. 如果当前代码页是 437(OEM - 美国), 则批处理路径和命令中的中文字符均不能被识别;
2>. 如果当前代码页是 936(ANSI/OEM - 简体中文 GBK), 那么当 .bat 文件以 ANSI 编码时, 路径以及命令参数中的中文字符可以正确识别; 以 UTF-8 without BOM 编码时, .bat 文件虽然可被识别, 但其中的中文字符和中文路径是不能识别的.
所以, 如果处理的命令或路径中包含中文字符, 请使用 ANSI 编码, 否则执行会出错.
另外:
1>. ANSI 和 UTF-8 without BOM 编码的 .bat 文件能被识别是因为文件头未插入任何特殊字节;
2>. UTF-8, Unicode(UCS-2 Little Endian) 以及 Unicode big endian(UCS-2 Big Endian) 编码的 .bat 文件执行时, 提示"×××不是内部或外部命令,也不是可运行的程序或批处理文件。" , 这是因为这三种编码格式的文件默认在文件头插入了特殊字节(即 BOM: Byte Order Mark). UTF-8 在文件头插入了 3 个字节 EF BB BF, Unicode 在文件头插入了 2 个字节 FF FE, Unicode big endian 在文件头插入了 2 个字节 FE FF. 它们不是 Windows 所能识别的命令, 所以相应编码格式的 .bat 文件执行出错.
1>. 如果当前代码页是 437(OEM - 美国), 则批处理路径和命令中的中文字符均不能被识别;
2>. 如果当前代码页是 936(ANSI/OEM - 简体中文 GBK), 那么当 .bat 文件以 ANSI 编码时, 路径以及命令参数中的中文字符可以正确识别; 以 UTF-8 without BOM 编码时, .bat 文件虽然可被识别, 但其中的中文字符和中文路径是不能识别的.
所以, 如果处理的命令或路径中包含中文字符, 请使用 ANSI 编码, 否则执行会出错.
另外:
1>. ANSI 和 UTF-8 without BOM 编码的 .bat 文件能被识别是因为文件头未插入任何特殊字节;
2>. UTF-8, Unicode(UCS-2 Little Endian) 以及 Unicode big endian(UCS-2 Big Endian) 编码的 .bat 文件执行时, 提示"×××不是内部或外部命令,也不是可运行的程序或批处理文件。" , 这是因为这三种编码格式的文件默认在文件头插入了特殊字节(即 BOM: Byte Order Mark). UTF-8 在文件头插入了 3 个字节 EF BB BF, Unicode 在文件头插入了 2 个字节 FF FE, Unicode big endian 在文件头插入了 2 个字节 FE FF. 它们不是 Windows 所能识别的命令, 所以相应编码格式的 .bat 文件执行出错.
相关文章推荐
- 编码格式导致批处理文件bat文件不能执行
- 将windows下的GBK编码格式文件转化为Linux下UTF-8编码格式文件
- windows下的脚本文件(*.sh)转到linux下编码格式问题
- 更改从windows拷入linux的文件的编码格式
- windows7下,在命令窗口中用telnet命令时, 命令无法执行,提示:“'telnet' 不是内部或外部命令,也不是可运行的程序或批处理文件”
- 如何在DOS/Windows和Linux/Unix之间进行文件格式转换
- bat批处理文件命令之文件格式问题
- 备份 Windows 7 key 激活文件 实现重装自行激活的批处理
- Windows & Unix 文件格式之迷, 空格、回车换行、tab 转换及其相关工具(转载)
- MP3文件格式与编码原理解码流程详解
- 修改 eclipse 文件编码格式
- linux查看文件的编码格式的方法
- 解决linux下挂载windows的FAT32格式文件系统乱码问题
- Linux查看文件编码格式及文件编码转换
- JSP文件的编码格式错误可能会导致连接数据库查询ResultSet没有返回值
- RFC1867文件上传格式编码
- HM-16.0编码过程:将YUV文件编码成HEVC格式的码流
- 决定视频文件占用空间大小的因素(编码格式,比特率)
- python指定写入文件时的编码格式方法