Chis1 WordPad не использую. Блокнот тоже. Notepad++ - рекомендую .
а сохраняет в кодировке UTF8 без BOM.
вероятно в коде кнопки можно поменять кодировку , спросите здесь
http://forum.mozilla-russia.org/viewtopic.php?id=9591 NONONINI 12:40 07-12-2010 Цитата: похоже источник другой.
Нет . Нашел именно там где указал. Может снесли - искать не хочется.
Добавлено: кстати. вот еще аналогичная кнопка, только сохраняет в HTML
[more]
custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3E%u0411%u043B%u043E%u043A%u043D%u043E%u0442.%20%28%u0432%u044B%u0434%u0435%u043B%u0438%20%u0442%u0435%u043A%u0441%u0442%20%u0438%20%u043D%u0430%u0436%u043C%u0438%20%u043A%u043D%u043E%u043F%u043A%u0443%3B%20%u0441%u0440%u0435%u0434%u043D%u044F%u044F%20%u043A%u043D%u043E%u043F%u043A%u0430%20-%20%u043E%u0442%u043A%u0440%u044B%u0442%u044C%20%u043F%u0430%u043F%u043A%u0443%20%u0441%20%u0437%u0430%u043C%u0435%u0442%u043A%u0430%u043C%u0438%20%u0432%20%u043F%u0440%u043E%u0432%u043E%u0434%u043D%u0438%u043A%u0435%29%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAASVJREFUeNqUkj1OAzEQhd+inIKKhjOkokCCIh23SEODRAstEi0UcARESTqkoNDlANRIRMoFELG9HnuwJ16yZNer7NOObK/l9z7/FMyM1/mSsSVHHkQWZAlnJ4cFMhpUndPhPjzXfFg+PE8+0KVBfeC5CBXSY3kgQED9KExmn5wj2ZOwlFw6wGyVXmmMjg5Ca/IE1lgZxAUxnVJ6pNArhe+yyJIIgdFrd0NhQVUuldKdJEKgwqS0lJJrFKW2a8MMiRDEn1E67VslCtmSc50kQqArA9qcvku3IQG2nWRjEFxvbl9AJYEcgf3/d5Uj+TO4vBjJqd4/vvH5+LhxVe+LdpLGQ+pL0jDoS9Iw6EuC6hnn6u5hym2afTFfXT/FbjvBriRRvwIMAB5ab/Pkdv8QAAAAAElFTkSuQmCC%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bthis.onclick%20%3D%20function%28event%29%20%7B%0A%20%20%20%20if%28event.button%20%3D%3D%201%29%20%7B%0A%20%20let%20propertiesService%20%3D%20Cc%5B%22@mozilla.org/file/directory_service%3B1%22%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20.getService%28Ci.nsIProperties%29%3B%0A%20%20let%20currProfD%20%3D%20propertiesService.get%28%22ProfD%22%2C%20Ci.nsIFile%29%3B%0A%20%20let%20profileDir%20%3D%20currProfD.path+%22%5C%5Ctxt%5C%5C%22%3B%0A%20%20let%20nsLocalFile%20%3D%20Components.Constructor%28%22@mozilla.org/file/local%3B1%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22nsILocalFile%22%2C%20%22initWithPath%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20new%20nsLocalFile%28profileDir%29.reveal%28%29%3B%0A%20%20%20%20%7D%3B%0A%20%20%20%0A%0A%7D%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5Bvar%20file%20%3D%20Components.classes%5B%22@mozilla.org/file/directory_service%3B1%22%5D.%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20getService%28Components.interfaces.nsIProperties%29.%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20get%28%22ProfD%22%2C%20Components.interfaces.nsIFile%29%3B%0Afile.append%28%22txt%22%29%3B%0Aif%28%20%21file.exists%28%29%20%7C%7C%20%21file.isDirectory%28%29%20%29%20%7B%20%20%20//%20if%20it%20doesn%27t%20exist%2C%20create%0A%20%20%20file.create%28Components.interfaces.nsIFile.DIRECTORY_TYPE%2C%200777%29%3B%7D%0A%20%20%20%0Alet%20propertiesService%20%3D%20Cc%5B%22@mozilla.org/file/directory_service%3B1%22%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20.getService%28Ci.nsIProperties%29%3B%0A%20%20let%20currProfD%20%3D%20propertiesService.get%28%22ProfD%22%2C%20Ci.nsIFile%29%3B%0A%20%20let%20profileDir%20%3D%20currProfD.path%3B%0A%20%20let%20profileDir1%20%3D%20currProfD.path+%22%5C%5Ctxt%5C%5C%22%3B%0A%20%0A//---functions%20converttext%0Afunction%20convertpath%28s%29%0A%7B%0A%20%20return%20s.replace%28/%5C%5C/g%2C%20%22/%22%29%3B%20%0A%7D%0Afunction%20convert_lt%28s%29%0A%7B%0A%20%20return%20s.replace%28/%3C/g%2C%20%22%26lt%3B%22%29%3B%20%0A%7D%0Afunction%20convert_qt%28s%29%0A%7B%0A%20%20return%20s.replace%28/%3E/g%2C%20%22%26gt%3B%22%29%3B%20%0A%7D%0Afunction%20okkamas_knife%28s%29%0A%7B%0A%20%20return%20s.replace%28/%20/g%2C%20%22%20%22%29%3B%20%0A%7D%0A//---end%20of%20functions%20converttext%0Avar%20myprofilepath%20%3D%22file%3A///%22%20+%20convertpath%28profileDir%29%20+%22/txt/%22%3B%0A%20%20%20var%20text%20%3D%20getString%28%29%3B%0Aif%20%28text%20%3D%3D%20%22%22%29%20%7B%0A%20%20%20%20if%28window.confirm%28%27%u041D%u0438%u0447%u0435%u0433%u043E%20%u043D%u0435%20%u0432%u044B%u0431%u0440%u0430%u043D%u043E%21%5Cn%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u0417%u0430%u043C%u0435%u0442%u043A%u0438%3F%27%29%3D%3Dtrue%29%0A%7B%20%0A%20%20if%28getBrowser%28%29.currentURI.spec%20%3D%3D%20%22about%3Ablank%22%29%20loadURI%20%28myprofilepath%29%3B%0A%20%20%20%20%20else%7B%20getBrowser%20%28%29.%20selectedTab%20%3D%20getBrowser%20%28%29.%20addTab%20%28myprofilepath%29%3B%7D%3B%20%7D%0A%3B%0A%20%20%20%20return%3B%0A%7D%20else%20%7B%0A%20%20%20%20SaveText%28%29%3B%0A%20%20%20%20if%28window.confirm%28%27%u0421%u043E%u0445%u0440%u0430%u043D%u0435%u043D%u043E%21%5Cn%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u0417%u0430%u043C%u0435%u0442%u043A%u0438%3F%27%29%3D%3Dtrue%29%0A%7B%20%0A%20%20if%28getBrowser%28%29.currentURI.spec%20%3D%3D%20%22about%3Ablank%22%29%20loadURI%20%28myprofilepath%29%3B%0A%20%20%20%20%20else%7B%20getBrowser%20%28%29.%20selectedTab%20%3D%20getBrowser%20%28%29.%20addTab%20%28myprofilepath%29%3B%7D%3B%20%7D%0A%3B%0A%0A%20%20%20%20%20%0A%7D%0A%0A%0A%0Afunction%20SaveText%28%29%20%7B%0A%20%20%20%20var%20directoryService%20%3D%20Components.classes%5B%27@mozilla.org/file/directory_service%3B1%27%5D.getService%28Components.interfaces.nsIProperties%29%3B%0A%20%0A%20%20%20%20var%20desktopPath%20%3D%20profileDir1%3B%0A%20%20%20%20var%20file%20%3D%20Components.classes%5B%22@mozilla.org/file/local%3B1%22%5D.createInstance%28Components.interfaces.nsILocalFile%29%3B%0A%20%20%20%20var%20fileName%20%3D%20getFileName%28%29%3B%0A%20%20%0A%20%20%20%20file.initWithPath%28desktopPath%29%3B%0A%20%20%20%20file.append%28fileName%29%3B%0A%20%20%20%20if%20%28file%20%26%26%20file.exists%28%29%29%20%7B%0A%20%20%20%20%20%20%20%20pttlAppend%28file%29%3B%0A%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20saveDefault%28file%29%3B%0A%20%20%20%20%7D%0A%7D%0A%0A%0A%0Afunction%20manipulateString%28text%29%20%7B%0A%20%20%20%20var%20l%20%3D%20text.length%3B%0A%20%20%20%20if%20%28l%20%3D%3D%200%29%20return%20%22%22%3B%0A%20%20%20%20while%20%28text%5B0%5D%20%3D%3D%20%22%20%22%29%20%7B%0A%20%20%20%20%20%20%20%20text%20%3D%20text.slice%281%2C%20l%29%3B%0A%20%20%20%20%7D%0A%20%20%20%20l%20%3D%20text.length%3B%0A%20%20%20%20while%20%28text%5Bl%20-%201%5D%20%3D%3D%20%22%20%22%29%20%7B%0A%20%20%20%20%20%20%20%20text%20%3D%20text.slice%280%2C%20l%20-%201%29%3B%0A%20%20%20%20%20%20%20%20l%20%3D%20text.length%3B%0A%20%20%20%20%7D%0A%20%20%20%20text%3Dconvert_lt%28text%29%3B%0A%20%20%20%20text%3Dconvert_qt%28text%29%3B%0A%20%20%20%20text%3D%22%3Cpre%3E%22+text+%22%3C/pre%3E%3Chr%3E%22%3B%0A%20%20%20%20return%20text%3B%0A%7D%0A%0A%0A%0Afunction%20getString%28%29%20%7B%0A%20%20%20%20var%20hlText%20%3D%20%22%22%3B%0A%20%20%20%20var%20focusedWindow%20%3D%20document.commandDispatcher.focusedWindow%3B%0A%20%20%20%20hlText%20%3D%20focusedWindow.getSelection.call%28focusedWindow%29%3B%0A%20%20%20%20hlText%20%3D%20hlText.toString%28%29%3B%0A%20%20%20%20hlText%20%3D%20manipulateString%28hlText%29%3B%0A%20%20%20%20return%20hlText%3B%0A%7D%0A%0A%0A%0Afunction%20getPttlDivisor%28%29%20%7B%0A%20%20%20%20var%20now%20%3D%20new%20Date%28%29%3B%0A%20%20%20%20var%20thisYear%20%3D%20now.getFullYear%28%29%3B%0A%20%20%20%20var%20thisMonth%20%3D%20now.getMonth%28%29%20+%201%3B%0A%20%20%20%20var%20thisDate%20%3D%20now.getDate%28%29%3B%0A%20%20%20%20var%20thisHours%20%3D%20now.getHours%28%29%3B%0A%20%20%20%20var%20thisMinutes%20%3D%20now.getMinutes%28%29%3B%0A%20%20%20%20var%20thisSeconds%20%3D%20now.getSeconds%28%29%3B%0A%20%20%20%20var%20thisTime%20%3D%20new%20Array%28thisYear%2C%20thisMonth%2C%20thisDate%2C%20thisHours%2C%20thisMinutes%2C%20thisSeconds%29%3B%0A%20%20%20%20var%20webNav%20%3D%20getBrowser%28%29.webNavigation%3B%0A%20%20%20%20var%20pttlTimeDiv%20%3D%20%22%22%3B%0A%20%20%20%20var%20winTitle%20%3D%20webNav.document.title%3B%0A%20%20%20%20var%20winURL%20%3D%20webNav.currentURI.spec%3B%0A%20%20%20%20for%20%28var%20i%20%3D%200%3B%20i%20%3C%206%3B%20i++%29%20%7B%0A%20%20%20%20%20%20%20%20if%20%28thisTime%5Bi%5D%20%3C%2010%29%20thisTime%5Bi%5D%20%3D%20%220%22%20+%20thisTime%5Bi%5D%3B%0A%20%20%20%20%7D%0A%20%20%20%20pttlTimeDiv%20%3D%20pttlTimeDiv%20+%20%22%3Cbr%3E%3Ca%20target%3D_blank%20href%3D%22%20+%20winURL%20+%20%22%3E%22%20+%20winTitle%20+%20%22%3C/a%3E%3Cbr%3E%22%3B%0A%20%20%20%20pttlTimeDiv%20%3D%20pttlTimeDiv%20+%20%22%5Cu000D%5Cu000A%22%20+%20thisTime%5B0%5D%20+%20%22/%22%20+%20thisTime%5B1%5D%20+%20%22/%22%20+%20thisTime%5B2%5D%20+%20%22%20%22%20+%20thisTime%5B3%5D%20+%20%22%3A%22%20+%20thisTime%5B4%5D%20+%20%22%3A%22%20+%20thisTime%5B5%5D%3B%0A%20%20%20%20pttlTimeDiv%20%3D%20pttlTimeDiv%20+%20%22%5Cu000D%5Cu000A%22%20+%20%22%3Cbr%3E----------------------------------%3Cbr%3E%22%3B%0A%20%20%20%20return%20pttlTimeDiv%3B%0A%7D%0A%0A%0A%0Afunction%20getFileName%28%29%20%7B%0A%20%20%20%20var%20now%20%3D%20new%20Date%28%29%3B%0A%20%20%20%20var%20thisYear%20%3D%20now.getFullYear%28%29%3B%0A%20%20%20%20var%20thisMonth%20%3D%20now.getMonth%28%29%20+%201%3B%0A%20%20%20%20var%20thisDate%20%3D%20now.getDate%28%29%3B%0A%20%20%20%20var%20hrs%3Dnow.getHours%28%29%3B%0A%20%20%20%20var%20thisTime%20%3D%20new%20Array%28thisYear%2C%20thisMonth%2C%20thisDate%2C%20hrs%29%3B%0A%20%20%20%20var%20pttlTime%20%3D%20%22%22%3B%0A%20%20%20%20for%20%28var%20i%20%3D%200%3B%20i%20%3C%204%3B%20i++%29%20%7B%0A%20%20%20%20%20%20%20%20if%20%28thisTime%5Bi%5D%20%3C%2010%29%20thisTime%5Bi%5D%20%3D%20%220%22%20+%20thisTime%5Bi%5D%3B%0A%20%20%20%20%20%20%20%20pttlTime%20%3D%20pttlTime%20+%20thisTime%5Bi%5D%3B%0A%20%20%20%20%20%20%20%20if%20%28i%20%21%3D%203%29%20pttlTime%20%3D%20pttlTime%20+%20%22-%22%3B%0A%20%20%20%20%7D%0A%20%20%20%20pttlTime%20%3D%20pttlTime%20+%20%22.htm%22%3B%0A%20%20%20%20return%20pttlTime%3B%0A%20%20%0A%7D%0A%0A%0A%0Afunction%20saveDefault%28fileS%29%20%7B%0A%20%20%20%20var%20stream%20%3D%20Components.classes%5B%22@mozilla.org/network/file-output-stream%3B1%22%5D.createInstance%28Components.interfaces.nsIFileOutputStream%29%3B%0A%20%20%20%20var%20converter%20%3D%20Components.classes%5B%22@mozilla.org/intl/converter-output-stream%3B1%22%5D.createInstance%28Components.interfaces.nsIConverterOutputStream%29%3B%0A%20%20%20%20var%20myprofilepath1%20%3Dokkamas_knife%28myprofilepath%29%3B%0A%20%20%20%20var%20pttlDiv%20%3D%20%22%3Chtml%3E%3Chead%3E%3Cmeta%20http-equiv%3D%27Content-Type%27%20content%3D%27text/html%3B%20charset%3Dutf-8%27%20/%3E%3C/head%3E%3Cbody%3E%3Ca%20href%3D%22+%20myprofilepath1%20+%20%22%3E%u041F%u0435%u0440%u0435%u0439%u0442%u0438%20%u043A%20%u0441%u043F%u0438%u0441%u043A%u0443%3C/a%3E%3Chr%3E%22%20+%20getPttlDivisor%28%29%3B%0A%20%20%20%0A%20%20%20%20stream.init%28fileS%2C%200x02%20%7C%200x08%20%7C%200x20%2C%200664%2C%200%29%3B%0A%20%20%20%20converter.init%28stream%2C%20%22UTF-8%22%2C%200%2C%200x0000%29%3B%0A%20%20%20%20converter.writeString%28pttlDiv%29%3B%0A%20%20%20%20converter.writeString%28text%29%3B%0A%20%20%20%20converter.close%28%29%3B%0A%20%20%20%20stream.close%28%29%3B%0A%7D%0A%0A%0A%0Afunction%20pttlAppend%28fileA%29%20%7B%0A%20%20%20%20var%20stream%20%3D%20Components.classes%5B%22@mozilla.org/network/file-output-stream%3B1%22%5D.createInstance%28Components.interfaces.nsIFileOutputStream%29%3B%0A%20%20%20%20var%20converter%20%3D%20Components.classes%5B%22@mozilla.org/intl/converter-output-stream%3B1%22%5D.createInstance%28Components.interfaces.nsIConverterOutputStream%29%3B%0A%20%20%20%20var%20pttlDiv%20%3D%20getPttlDivisor%28%29%3B%0A%20%20%20%20stream.init%28fileA%2C%200x02%20%7C%200x10%2C%200664%2C%200%29%3B%0A%20%20%20%20converter.init%28stream%2C%20%22UTF-8%22%2C%200%2C%200x0000%29%3B%0A%20%20%20%20converter.writeString%28%22%5Cu000D%5Cu000A%5Cu000D%5Cu000A%5Cu000D%5Cu000A%22%20+%20pttlDiv%29%3B%0A%20%20%20%20converter.writeString%28text%29%3B%0A%20%20%20%20converter.close%28%29%3B%0A%20%20%20%20stream.close%28%29%3B%0A%7D%20%20%20%20%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E[/more]