bat 文件名替换为字符(生成指定编码格式)
bat 文件名替换为字符(生成指定编码格式)以下是默认的cmd窗口:more.html文件在本地的浏览器上显示是没有问题的,但上传到如github.com上时会发现其是乱码,原因是github.com上需要文本的编码为为UTF-8。其文件编码的格式是什么呢?用记事本打开,另存为,发现其为ANSI格式:用Notepad 打开,发现其为GB2312编码:
如果用批处理自动生成文件,生成的文件的编码会是什么呢?
如以下用批处理要建立一个html网页文件:
::chcp 65001 echo ^<!doCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 TrANSItional//EN" >more.html echo "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"^> >>more.html echo ^<html xmlns="http://www.w3.org/1999/xhtml"^> >>more.html echo ^<base target="_blank" /^> >>more.html echo ^<head^> >>more.html echo ^<title^>contents^</title^> >>more.html echo ^<link href="../../more.css" rel="stylesheet" type="text/css" /^> >>more.html echo ^<style type=text/css^> >>more.html echo ^</style^>^</head^> >>more.html echo ^<body^>^<div^> >>more.html for /f "tokens=1 2 usebackq delims=." %%a in (`dir /o:n /b`) do ( if not "%%a.%%b"=="%%a." ( if not "%%a.%%b"=="more.html" ( if not "%%b"=="bat" ( echo ^<li^>^<a href="%%a.%%b"^>%%a.%%b^</a^>^</li^> >>more.html ) ) ) ) for /f "tokens=1 2 usebackq delims=." %%a in (`dir /o:n /b`) do ( if "%%a.%%b"=="%%a." ( echo ^<li^>^<a href="%%a/a.html"^>%%a^</a^>^</li^> >>more.html ) ) echo ^</div^> >>more.html echo ^</body^> >>more.html echo ^</html^> >>more.html
某目录下有如下一些文件:
自动生成的网页文件more.html:
其文件编码的格式是什么呢?
用记事本打开,另存为,发现其为ANSI格式:
用Notepad 打开,发现其为GB2312编码:
more.html文件在本地的浏览器上显示是没有问题的,但上传到如github.com上时会发现其是乱码,原因是github.com上需要文本的编码为为UTF-8。
以下是默认的cmd窗口:
右击窗口标题栏,查看其属性:
发现其当前代码页为936,可输入英文,也可切换为中文输入。
当前代码页是可以改变的,命令是chcp(change code page):
批处理生成文件,是用echo命令加重定向命令来生成的。
输入chcp 437后回车:
当前代码页设置为美国英语,此时无法切换中文。
950是繁体中文。
932是日语。
但设置会提示失败,原因是与操作系统的区域和语言设置有关:
chcp 65001呢?
对应的编码就是utf-8,正是我们需要的文件编码格式。
在上述批处理文件文件的前面加一行:
chcp 65001
便可以确保生成的文件是utf-8编码了。
当然,窗口属性也可以改变字体:
在命令行标题栏上点击右键,选择"属性"->"字体",将字体修改为True Type字体"Lucida Console",然后点击确定将属性应用到当前窗口。
附:右键新建txt文件,默认编码修改为UTF-8格式的设置方式:
新建记事本(txt)文档时默认的编码格式是ANSI编码的,可用以下方式更改为:右键“新建-->文本文档”为默认UTF-8编码格式:
1. 打开目录(没有则自己新建) C:\WINDOWS\SHELLNEW 2. 在该目录下创建一个文本文档(txt): 右键 -> 新建 -> 文本文档 3. 命名为: UTF8.txt 4. 打开该文档,然后选择: 文件 -> 另存为... 5. 选择编码格式为: UTF-8 保存并关闭文件。 6.点击开始菜单: 开始 -> 运行... 或者 快捷键 WIN R 7. 输入:regedit 回车,打开注册表。 8. 按以下路径找到ShellNew项: HKEY_CLASSES_ROOT\.txt\ShellNew 9. 右键右边区域: 新建 -> 字符串 10. 命名为: FileName 11. 双击 FileName这项,输入: UTF8.txt 12. 按以下路径找到Notepad项: HKEY_CURRENT_USER\Software\Microsoft\Notepad 13. 更改以下两项值为:1(如果不存在,自行创建:右键 -> 新建 -> DWORD) fSavePageSettings fSaveWindowPositions
-End-