0 / 0 / 0
Регистрация: 17.11.2016
Сообщений: 6
|
|||||||||||
1 | |||||||||||
Проблема с кодировками при использовании Thunderbird 45.4.017.11.2016, 14:57. Показов 4588. Ответов 10
Метки нет (Все метки)
Приветствую.
У меня следующая проблемка с кодировками. Самая живая на мой взгляд тема и ближе всего к cmd + javascript. Сразу говорю ... писать на форум мозилы смысла не вижу ... т. к. в прошлый раз мне с этой темой никто не помог и в этот раз думаю тоже ... но тема таже самая (там все кратенько, загляните чисто для подробностей) https://forum.mozilla-russia.o... 57#p706457 После обновления с версии Thunderbird 38.5.1 на 45.4.0 перестала отрабатывать функция конвертации переменной определенной в windows в переменную javascript опеределенную в автоконфиге thunderbird.cfg. Если кратко, я получаю ФИО пользователя из AD и запихиваю его в переменную %FULLNAME% в Windows:
Перечитал кучу тем ... через BAT, я так понимаю, можно только создать файлик в кодировке UTF-8 (без BOM), но я не могу создать переменную в кодировке UTF-8 (без BOM), например, %FULLNAME_UTF8%. Единственный вариант, который, я думаю, можно реализовать с моими способностями, это создать файлик с правильной кодировкой и положить его куда-нибудь рядом с профилем пользователя и его уже указать в качестве переменно javascript, но не хотелосьбы лишних костылей. Может кто что подскажет?
0
|
17.11.2016, 14:57 | |
Ответы с готовыми решениями:
10
проблема с кодировками при выводе из БД проблема с кодировками при вставке содержимого файла Проблема с кодировками Проблема с кодировками в Ajax |
17.11.2016, 17:01 | 2 |
fullname - в какой кодировке? Распечатывать пробовали? что там видно? Может, она уже исходно в UTF-8?
Крякозяблики покажите? Вам только javascript код походит или jscript тоже? (намекаю на использование объектов ActiveXObject, как в первом посте темы "Перекодировка текста (сборник кодов для различных кодовых страниц)", спойлер "Любая кодировка в любую") Добавлено через 1 минуту ну можно и так. Создать, потом прочитать его. Но лучше так не делать, сразу через jscript.
0
|
0 / 0 / 0
Регистрация: 17.11.2016
Сообщений: 6
|
|
17.11.2016, 17:21 [ТС] | 3 |
0
|
0 / 0 / 0
Регистрация: 17.11.2016
Сообщений: 6
|
|
17.11.2016, 17:45 [ТС] | 4 |
Добавлено через 10 минут
А разве там не нужен именно файл на входе и на выходе? Или вы предлагаете взять thunderbird.cfg перекодировать его в 866 потом записать в него параметр (опять же парсить, менять), потом конвертнуть его уже в 65001 (UTF-8 (без BOM)). В таком случае проще отдельно файлик с ФИО положить, а то как-то корявенько получается.
0
|
17.11.2016, 17:53 | 5 |
Сообщение было отмечено ComSpec как решение
Решение
В виде текста, а не скриншотом.
Ну да ладно. Вижу, что UTF8 -> Latin. Так пробовали? Код
defaultPref("mail.identity.id1.fullName", fullname); в том примере нужен. Но поток можно загрузить и виде массива. ничего такого я не предлагал.
1
|
0 / 0 / 0
Регистрация: 17.11.2016
Сообщений: 6
|
|
17.11.2016, 18:12 [ТС] | 6 |
Обалдеть, прокатило. Удалил целиком функцию function utf8 (text) для чистоты эксперемента и отредактировал как Вы сказали. Похоже Thunderbird что-то у себя подкрутил и теперь костыль в виде функции не требуется Целый день убил сегодня на это.
Спасибо, что уделили время. Знал, что на Вас можно положиться А может на последок подскажите, как узнать в какой кодировке у меня хранится переменная в Windows? Или как так получилось? Может это и не Thunderbird поправил, а просто у меня переменные одинаково называются FULLNAME и fullname, и javascript каким-то образом переписал значение в Windows. Т. е. как Вы пришли к такому выводу? echo %FULLNAME%
0
|
17.11.2016, 18:31 | 7 | |||||
Вот так:
Начать с процедуры её генерации, переписав так:
Это поможет, если в тексте будет хоть один знак кириллицы. Вообще, в ANSI (cp-1251), но хз, у Windows 8/10 часть CMD команд выдают юникод, так что по-разному может быть в разных версиях ОС.
0
|
17.11.2016, 19:18 | 8 | |||||
Думаю, что это из-за того что после обновления слетели некоторые настройки, в частности стандартная кодировка при составлении письма:
0
|
0 / 0 / 0
Регистрация: 17.11.2016
Сообщений: 6
|
|||||||||||||||||||||||||||||||||||||||||
17.11.2016, 20:32 [ТС] | 9 | ||||||||||||||||||||||||||||||||||||||||
Такой настройки у меня нет ни в файлике автоконфигурации thunderbird.cfg, который лежит рядом с thunderbird.EXE ни в папке профиля пользователя C:\Users\user\AppData\Roaming\Thunderbird\Profiles\g6e7ec0b.default\prefs.js, который переопределяет параметры автоконфига thunderbird.cfg. Его добавление ничего не меняет ни в true ни в false. Пробовал конвертировать файл prefs.js через Notepad++ в ANSI думал может автоматом переконвертирует весь файл - нет, вбивал в кодировке ANSI ФИО ("Имя отправителя") , думал будет конвертировать автоматом ФИО ("Имя отправителя") в UTF8 - нет, просто пустое поле показвал. Проверял формат создаваемых новых сообщений кодировку, всегда "Юникод" стоит. И кучу других тестов, но нигде не нашел как же этот параметр работает и за что конкретно отвечает.
Если Вас не затруднит, ткныте носом в пример, что же должно менятся когда этот параметр включен или выключен? Теперь по поводу ФИО ("Имя отправителя") и моих экспериментов. Я поторопился радоваться, но направления было верным. Опишу подробно мои тесты. Сразу хочу обратить внимание нужна обязательная перезагрузка машинки, т. к. именно после перезагрузки все и слетало на нет. Вобщем для чистоты эксперемента ребут обязателен в моем случае. Исходный конфиг: Кликните здесь для просмотра всего текста
Тест 1 Редактирую строчку, убираю ТОЛЬКО вызов функции utf8. Перезагружась. Кликните здесь для просмотра всего текста
было
Получаю корректное отображение ФИО ("Имя отправителя") в Thunderbird. Тест 2 Решаю убрать и саму функцию utf8. По логике, если я ее не использую, зачем она мне в конфиге. Перезагружаюсь. Кликните здесь для просмотра всего текста
было
Получаю тоже самое, что и при экспериментах с кодировкой и параметром user_pref("prefs.converted-to-utf8", true);, а именно пустоту в строке ФИО ("Имя отправителя") в Thunderbird. ТЕСТ 3 Меняю переменную fullname на fullname_thunderbird, чтобы избежать некорректной обработки с переменной FULLNAME в Windows. Кликните здесь для просмотра всего текста
было
Кликните здесь для просмотра всего текста
стало
Получаю корректное отображение ФИО ("Имя отправителя") в Thunderbird. ИТОГ 1. Thunderbird как-то все-таки обрабатывает автоматом переменную в Windows и записывает к себе уже в формате utf-8, скорей всего в каком формате находится сам файл thunderbird.cfg, в током и происходит запись, не проверял. Кодировка по умолчанию в Windows 7 OEM 866, это неоднократно проверялось в скриптах. 2. Переменные всеже пересикались, странно что, долгое время все работало и почему-то с самого начала не сделал разные переменные. 3. Ну и итоговый конфиг ... для закрепления без всякий дополнительных функций вообще:
0
|
17.11.2016, 21:18 | 10 | |||||
Я считаю, что при установке свойства converted-to-utf8 в true огненный лис должен был начать воспринимать свойства, влияющие на формирование письма, в формате utf-8, то есть должен был корректно обработать строку:
Код
user_pref("intl.charsetmenu.mailview.cache", "ISO-8859-1, UTF-8"); Tools → Options → Display → Formatting → Fonts → Advanced... → Character Encodings → Outgoing Mail: Кстати, попробуйте заблокировать настройку такой командой: Код
lockPref("prefs.converted-to-utf8", true); На счёт потери настроек после перезагрузки, вот тут человек пишет что можно создать файл user.js, который будет иметь более высокий приоритет над prefs.js
0
|
0 / 0 / 0
Регистрация: 17.11.2016
Сообщений: 6
|
|
18.11.2016, 16:26 [ТС] | 11 |
Огненный может и должен, а моя громовая птица не особо Специально проверил. Да и нет нужды теперь в той функции utf8, пашет без нее, так это замечательно, нет лишнего костыля.
Исходящие UTF-8, Входящие Win-1251 Нет смысла блокировать, я ее и так непосредственно под пользователем делаю. Может быть ... Файл скрипта, который ФИО получает в OEM 866, конфиги thunderbird в UTF-8 (без BOM). Ну у меня настройки не теряет ... я вроде такого не писал, а перезагрузка нужна для чистоты эксперемента, потомучто ФИО Выдергивается при входе ну и скинуть все возможные эксперементы. Мы сейчас пытаемся заставить работать то, без чего и так все замечательно работает ... Про параметр prefs.converted-to-utf8 безусловно ценное замечание, но гадать на кофейной гуще и тратить время не ненужный эксперемент думаю не стоит. Видимо в почтовик встроили функцию конвертации UTF-8 просто из-за этого и происходил этот глюк у меня. Не вижу смысла продолжать тесты, ОГРОМНОЕ спасибо за помощь.
0
|
18.11.2016, 16:26 | |
18.11.2016, 16:26 | |
Помогаю со студенческими работами здесь
11
dbf - проблема с кодировками !!! Запутанная проблема с кодировками Проблема с кодировкой при использовании процедур Проблема с кодировками вставляемых файлов Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |