使用 Javascript/Windows 批处理文件混合将非 ASCII 字符编码为 HTML
Encode non-ASCII characters to HTML using Javascript/Windows batch file hybrid
我需要复制这个网站 http://www.unicodetools.com/unicode/convert-to-html.php 在混合 Javascript/Windows 批处理脚本中执行的确切功能。我对 Javascript 的知识为零,但它似乎是最简单的(对于那些知识渊博的人)用文本文件中的 HTML 实体等效字符替换特殊非 ASCII 字符的可能方法:“例如,têxt”到“têxt”,但使用输入和输出文本文件而不是 Web 表单。我已经看到 JREPL.bat(一个 regex/find 和替换工具)的奇迹,所以我认为这是可以实现的。
请原谅我问这个问题,但这是我好几天都无法解决的问题的一部分。这是关于这个悬而未决的问题,。我发现文本文件中的日文和其他 UTF-8 字符可以通过 CURL post 请求传递而不会被乱码,方法是在 --data-urlencode 部分之前先将它们编码为 HTML 代码。
也就是说,我想问问是否有人愿意创建一个简单的 JScript/Windows 批处理脚本混合体,其中包含上述网站用来编码 [=21] 的 Javascript 代码=]只有 非 ASCII 字符到文本文件中的 HTML 实体,我可以使用如下代码行从另一个批处理文件中调用:
CALL EncodetoHTML.bat -i "input.txt" -o "output.txt"
Here it is。全新新鲜。
您可以只传递要编码的文件(结果将打印到控制台)或传递输入和输出file.Examples:
call toHtmlEnt.bat input.txt output.txt
call toHtmlEnt.bat input.txt
我写了我自己的脚本。我花了一整天的时间基本上是在网上搜索我能找到的有用的代码片段并将它们组合起来以达到我想要的效果。
将下面的代码保存到tohtmlent.bat。从 CMD 中使用它,如 tohtmlent.bat filename.txt
或从另一个批处理文件中调用它,如 call tohtmlent.bat filename.txt
,其中 "filename.txt" 是输入文件。输出将显示在控制台中,因此如果您想将输出通过管道传输到文件,请使用 >
。输入文件应严格以 UTF-8 编码。输出为 ANSI。该脚本所做的是将十进制范围为 128 及更高的所有 Unicode 字符转换为它们的数字 HTML 实体等价物。
考虑到我不是程序员,代码远谈不上优雅,而且它还有很大的改进空间。但是,嘿,它完成了它的工作!
@if (@X)==(@Y) @end /*
@echo off
cscript //E:JScript //nologo "%~f0" %*
exit /b 0
*/
if (WScript.Arguments.Length < 1 ) {
WScript.Echo("No file specified.");
WScript.Quit(0)
}
var inputFile = WScript.Arguments.Item(0);
var fso= new ActiveXObject("Scripting.FileSystemObject");
var inputFile=WScript.Arguments.Item(0);
if (!fso.FileExists(inputFile)){
WScript.Echo(inputFile + " does not exist.");
WScript.Quit(1);
}
var objAdoS = WScript.CreateObject("ADODB.Stream");
objAdoS.Type = 2;
objAdoS.CharSet = "utf-8";
objAdoS.Open();
objAdoS.LoadFromFile(inputFile);
var strInput = objAdoS.ReadText();
objAdoS.Close();
var strOutput = '';
for(i=0; i<strInput.length; i++){
if(strInput.charCodeAt(i)>127){ strOutput += '&#' + strInput.charCodeAt(i) + ';'; }else{ strOutput += strInput.charAt(i); }
}
WScript.Echo(strOutput);
我需要复制这个网站 http://www.unicodetools.com/unicode/convert-to-html.php 在混合 Javascript/Windows 批处理脚本中执行的确切功能。我对 Javascript 的知识为零,但它似乎是最简单的(对于那些知识渊博的人)用文本文件中的 HTML 实体等效字符替换特殊非 ASCII 字符的可能方法:“例如,têxt”到“têxt”,但使用输入和输出文本文件而不是 Web 表单。我已经看到 JREPL.bat(一个 regex/find 和替换工具)的奇迹,所以我认为这是可以实现的。
请原谅我问这个问题,但这是我好几天都无法解决的问题的一部分。这是关于这个悬而未决的问题,。我发现文本文件中的日文和其他 UTF-8 字符可以通过 CURL post 请求传递而不会被乱码,方法是在 --data-urlencode 部分之前先将它们编码为 HTML 代码。
也就是说,我想问问是否有人愿意创建一个简单的 JScript/Windows 批处理脚本混合体,其中包含上述网站用来编码 [=21] 的 Javascript 代码=]只有 非 ASCII 字符到文本文件中的 HTML 实体,我可以使用如下代码行从另一个批处理文件中调用:
CALL EncodetoHTML.bat -i "input.txt" -o "output.txt"
Here it is。全新新鲜。
您可以只传递要编码的文件(结果将打印到控制台)或传递输入和输出file.Examples:
call toHtmlEnt.bat input.txt output.txt
call toHtmlEnt.bat input.txt
我写了我自己的脚本。我花了一整天的时间基本上是在网上搜索我能找到的有用的代码片段并将它们组合起来以达到我想要的效果。
将下面的代码保存到tohtmlent.bat。从 CMD 中使用它,如 tohtmlent.bat filename.txt
或从另一个批处理文件中调用它,如 call tohtmlent.bat filename.txt
,其中 "filename.txt" 是输入文件。输出将显示在控制台中,因此如果您想将输出通过管道传输到文件,请使用 >
。输入文件应严格以 UTF-8 编码。输出为 ANSI。该脚本所做的是将十进制范围为 128 及更高的所有 Unicode 字符转换为它们的数字 HTML 实体等价物。
考虑到我不是程序员,代码远谈不上优雅,而且它还有很大的改进空间。但是,嘿,它完成了它的工作!
@if (@X)==(@Y) @end /*
@echo off
cscript //E:JScript //nologo "%~f0" %*
exit /b 0
*/
if (WScript.Arguments.Length < 1 ) {
WScript.Echo("No file specified.");
WScript.Quit(0)
}
var inputFile = WScript.Arguments.Item(0);
var fso= new ActiveXObject("Scripting.FileSystemObject");
var inputFile=WScript.Arguments.Item(0);
if (!fso.FileExists(inputFile)){
WScript.Echo(inputFile + " does not exist.");
WScript.Quit(1);
}
var objAdoS = WScript.CreateObject("ADODB.Stream");
objAdoS.Type = 2;
objAdoS.CharSet = "utf-8";
objAdoS.Open();
objAdoS.LoadFromFile(inputFile);
var strInput = objAdoS.ReadText();
objAdoS.Close();
var strOutput = '';
for(i=0; i<strInput.length; i++){
if(strInput.charCodeAt(i)>127){ strOutput += '&#' + strInput.charCodeAt(i) + ';'; }else{ strOutput += strInput.charAt(i); }
}
WScript.Echo(strOutput);