А обо мне забыли...? tongue2
Мм? А вы кто?
Ссылочку можно на "соглашения"? smile Что-то я не уверен, что есть именно нечто именно в какой-то такой форме - касательно перекодировок урлов, но точно не знаю.
Ссылку дать не могу, но в мозилла принято всё не-аски сохранять в эскейпнутом UTF-8. Ошибка заключалась в том, что FF в винде сохранял в родной кодировке (win-1251, а не utf-8), а при открытии ожидал, что имена как раз в эскейпнутом utf-8.
Вообще, я где-то писал, что можно использовать при сохранении специальные константы вида &1241 (не помню ни названия, ни точного вида). Но у меня из-за семейных проблем нет времени, чтобы покопаться в мозилле (ещё в разработке висит патч для адресной строки симанки =Bug 425480= — получил ряд замечаний, а переделать уже не успел). Кстати, по поводу симанки: кто-то из форумчан на JS что-то пытался фиксить, в принципе, для исправления Симанки не так много и надо времени (мои знания JS вообще стремятся к нулю).
Так, а это какой точно, чтоб я не напутал?
https://bugzilla.mozilla.org/show_bug.cgi?id=409796
Отсутствует
powerfox
кто-то из форумчан на JS что-то пытался фиксить
Наверное misak.
https://bugzilla.mozilla.org/show_bug.cgi?id=409796
Что-то не вижу там поста biezi, а точно не biesi? И biesi не вижу.))
Отсутствует
powerfox
ещё в разработке висит патч для адресной строки симанки =Bug 425480= — получил ряд замечаний, а переделать уже не успел). Кстати, по поводу симанки: кто-то из форумчан на JS что-то пытался фиксить, в принципе, для исправления Симанки не так много и надо времени (мои знания JS вообще стремятся к нулю).
Bug 425480 – non-ASCII characters should be decoded in the urlbar (like in FF3)
https://bugzilla.mozilla.org/show_bug.cgi?id=425480
Наблюдается заметный прогресс усилиями misak
powerfox, обращаю, типа, внимание.-)
Отсутствует
Наблюдается заметный прогресс усилиями misak smile
powerfox, обращаю, типа, внимание.-)
Видел Я подписан на этот баг. И это очень классно, так как я JS почти не помню (я пишу на С++).
powerfox_Лень логиниться
А вот там ещё про
It Fixes the urlbar only. Autocomplition and bookmarks should be fixed too
(they still show encoded text), but I want to do it in the separate bug.
Ты их забацал - отдельные или уже не надо?
Отсутствует
powerfox
И ещё, я таки собрался написать автору ViewSourceWith, он живо так заинтересовался, но у него что-то не получается. Я ему и страниц сохранил со скринами. Но я ж не знаю как точно описать и на что обратить внимание. Тем более на инглише.
Вот он пишет:
I have bad news
Under Linux I've fixed the bug but under Windows seems impossible because the calling routine used by Mozilla to run external programs (eg run the editor) doesn't allow to pass parameters containing UTF-8 characters
И на зине:
I've a local file containing cyrillic characters in name (dir or filename)and I need to pass the corresponding path string as parameter to nsIProcess.run().
After a great discussion on extension dev irc I'm able to pass string under linux, but under Windows doesn't work.
Below I show the code I use.
I convert the uri into a nsiFile using the code shown below
Выделить кодКод:
var ioService = Components.classes["@mozilla.org/network/io-service;1"] .getService(Components.interfaces.nsIIOService); return ioService.newURI(url, null, null) .QueryInterface(Components.interfaces.nsIFileURL) .file;Then I convert the path from unicode and under Linux works fine
Выделить кодКод:
runArgument = fromUnicode(file.path, "UTF-8"); function fromUnicode(text, charset) { var unicodeCvt = Components.classes["@mozilla.org/intl/scriptableunicodeconverter"] .createInstance(Components.interfaces.nsIScriptableUnicodeConverter); unicodeCvt.charset = charset; return converter.ConvertFromUnicode(text) + converter.Finish(); }I've tried different charset under Windows without success
Может сообщишь ему правильное направление мысли? Лучше на инглише.
Отсутствует
vladmir
Может сообщишь ему правильное направление мысли? Лучше на инглише.
Например, можно заглянуть в IE Tab... Правда, там тоже не всегда правильно перекодирует.
У меня работает примерно следующее:
var myObj = { openUriWithApp: function( ... ) { // ... // var path = "c:\\Program Files\\Internet Explorer\\iexplore.exe"; // var args = []; args.push(this.convertStrFromUnicode(uri)); this.startProcess(path, args); }, startProcess: function(path, args) { args = args || []; var file = Components.classes["@mozilla.org/file/local;1"] .createInstance(Components.interfaces.nsILocalFile); file.initWithPath(path); if(!file.exists()) { alert(path + "\nnot found!"); return; } var process = Components.classes["@mozilla.org/process/util;1"] .getService(Components.interfaces.nsIProcess); process.init(file); process.run(false, args, args.length); }, convertStrFromUnicode: function(str) { var charset = this.charset; if(!charset) return str; // this.ut._log("convertStrFromUnicode -> charset -> " + charset); var suc = Components.classes["@mozilla.org/intl/scriptableunicodeconverter"] .createInstance(Components.interfaces.nsIScriptableUnicodeConverter); suc.charset = charset; try { str = decodeURIComponent(str); // to UTF-8 } catch(e) { // does not work in fx 1.5 str = suc.ConvertToUnicode(unescape(str)); // Thanks to IE Tab! str = decodeURI(str); } return suc.ConvertFromUnicode(str); }, get charset() { var charset = ""; if(this.ut.pref("convertURIs")) { charset = this.ut.pref("convertURIsTo"); if(!charset) { charset = this.ut.getPref("intl.charset.default"); if(!charset || charset.indexOf("chrome://") == 0) charset = this.defaultCharset; } } return charset; }, _defaultCharset: null, get defaultCharset() { // thanks to IE Tab! if(this._defaultCharset == null) { var strBundle = Components.classes["@mozilla.org/intl/stringbundle;1"] .getService(Components.interfaces.nsIStringBundleService); try { this._defaultCharset = strBundle.createBundle("chrome://global-platform/locale/intl.properties") .GetStringFromName("intl.charset.default"); } catch(e) { this._defaultCharset = ""; } } return this._defaultCharset; } }; myObj.openUriWithApp( ... );
this.ut.pref(prefName) и this.ut.getPref(prefName) возвращают значение настройки по ее имени.
Отредактировано Infocatcher (16-09-2008 00:42:05)
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
Infocatcher
Только это не мне надо пояснять, а автору расширения, ну вот я ему скопипащу этот код и что приписать?
А IE Tab что во что перекодирует?
Он же со страницами в онлайне работает, а тут проблема с сохранёнными.
При чём, что интересно, во ViewSourceWith не открывается сорс, а подключённые к той же странице css и js открываются - из окошка расширения.
У меня работает
В смысле - где у тебя?
Отредактировано vladmir (15-09-2008 22:18:52)
Отсутствует
vladmir
Только это не мне надо пояснять, а автору расширения, ну вот я ему скопипащу этот код и что приписать?
Я думаю, он поймет, что есть что в коде.
Приписать, что основано на коде IE Tab (уже не помню, но, вроде, я что-то менял).
При этом, кстати, в Win XP + Firefox 3.0 для http-ссылок работает без перекодирования (можно передать любую ссылку и Opera, и IE).
При этом IE 7.0 нормально открывает
http://ru.wikipedia.org/wiki/%D0%92%D0%B8%D0%BA%D0%B8%D0%BF%D0%B5%D0%B4%D0%B8%D1%8F:%D0%9F%D0%BE%D0%B8%D1%81%D0%BA
без перекодирования, а вот
file:///D:/%D0%92%D0%B8%D0%BA%D0%B8%D0%BF%D0%B5%D0%B4%D0%B8%D1%8F%20%D0%9F%D0%BE%D0%B8%D1%81%D0%BA.htm
– уже нет. А Opera не особо кушает cp1251...
Т.е. проблема в том, что запускаемое с параметром приложение неправильно читает этот параметр (ссылку). И надо угадать, во что следует эту ссылку перекодировать.
В общем, темное это дело...
А IE Tab что во что перекодирует?
Он же со страницами в онлайне работает, а тут проблема с сохранёнными.
В cp1251 (windows-1251) для русской версии Windows. Адреса страниц с Википедии, например, перекодирует и локальные странички – тоже (file://...).
Давно не пользовался и подробностей не помню, но факт в том, что IE Tab лучше всех IE* работает с кириллицей в пути к файлу.
При чём, что интересно, во ViewSourceWith не открывается сорс, а подключённые к той же странице css и js открываются - из окошка расширения.
Гм, не знаю... Но, кажется, сорс сначала в %temp%/ сохраняется. А локальные файлы без перекодирования пути к ним открываться не всегда желают.
В смысле - где у тебя?
У меня в расширении. Только оно еще не дописано – интерфейс для редактирования настроек не доделан (а править настройки вручную неудобно, от того и с тестированием вяло). В общем, суть в том, что код работает, но местами. А в Linux я вообще еще не смотрел.
Добавлено Tue Sep 16 00:42:28 2008 :
P.S. Немного подкорректировал код.
Отредактировано Infocatcher (16-09-2008 00:45:12)
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
Infocatcher
Первый кусок запостил на зине, только вот это я сходу не рискну перевести: "this.ut.pref(prefName) и this.ut.getPref(prefName) возвращают значение настройки по ее имени." и всё остальное техническое.-)
Вот эта тема:
Uri with cyrillis characters, Windows and unicode
http://forums.mozillazine.org/viewtopic.php?f=19&t=850765
Отсутствует
vladmir
только вот это я сходу не рискну перевести: "this.ut.pref(prefName) и this.ut.getPref(prefName)
Ну, можно и их код привести, только он несущественен в данном случае.
... return value of prefName preference (да-да, с буржуйским у меня не очень )
this.ut.pref(prefName) used for extensions settings and this.ut.getPref – for other (like intl.charset.default).
P.S. А ссылаться можно на мой профиль там: http://forums.mozillazine.org/memberlis … e&u=282648
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
Ха! В Эхплорере тоже быват всяко:
You cannot open a Web page by using Windows Internet Explorer 7 if the URL of the Web page contains non-ASCII characters
http://support.microsoft.com/kb/935729/
Добавлено Tue Sep 16 13:42:19 2008 :
Infocatcher
(да-да, с буржуйским у меня не очень )
У нас с тобой, смотрю, одинаково.)) Я и в твоих постах ошибки вижу и в своих.-(
Отсутствует
Вскрылось новое грустное обстоятельство.
В самом Файрфоксе есть встроенная функция - переключение на просмотр исходника во внешнем редакторе (Вид - Исходный код страницы).
Включается переключением параметра
pref("view_source.editor.external", false);
на true и указанием в параметре
pref("view_source.editor.path", "");
пути к внешнему редактору.
Так вот оно не срабатывает, если страница с кириллицей в пути или имени.
Сообщено в теме:
http://forum.mozilla-russia.org/viewtopic.php?id=26626
Хотя в Нетскейпе 9, смотрю, аналогично то есть и во втором фоксе то есть это-то давняя история.
Отредактировано vladmir (26-09-2008 17:35:48)
Отсутствует
---/)/)---(\.../)---(\(\
--(':'=)---(=';'=)---(=':')
(")(")..)-(").--.(")-(..(")(")
Отсутствует