1
我已經創建了簡單的Firefox附加組件,它應該搜索文件中的頁面子字符串上的選定內容。 一切都很好,直到我嘗試搜索某些特定語言的子字符串,例如俄語。 使用呼叫窗口cmd命令propmt如下執行的搜索命令:Firefox附加組件 - 執行shell命令 - 參數編碼
function getShell()
{
var env = Cc["@mozilla.org/process/environment;1"].getService(Ci.nsIEnvironment);
var shell = new FileUtils.File(env.get("COMSPEC"));
var process = Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess);
process.init(shell);
return process;
}
var shell = getShell();
var text = "россия";
var folder = "c:\\temp\\test\\*.*";
var cmd = "chcp 65001 & c:\\progra~1\\gnuwin32\\bin\\grep.exe -i -r " + text + " " + folder + " > c:\\temp\\test\\output.txt";
cmd = utf16to8(cmd);
args = ["/k", cmd];
shell.run(true, args, args.length);
所以,我已經試過deode UTF-16爲UTF-8和執行沒有成功(改變shell執行中的代碼頁) 。但我已成功如下:
var cmd = "chcp 1251 & c:\\progra~1\\gnuwin32\\bin\\grep.exe -i -r " + text + " " + folder + " > c:\\temp\\test\\output.txt";
cmd = UnicodeToWin1251(cmd);
args = ["/k", cmd];
shell.run(true, args, args.length);
最後一個工作正常,但它不適用於其他語言。如何將內部javascript字符串轉換爲utf-8並執行命令usig 65001 codepage?
UnicodeToWin1251這裏 utf16to8採取這裏