Пингвинчик Опубликовано 9 марта, 2005 Жалоба Поделиться Опубликовано 9 марта, 2005 1) Konqueror неправильно показывает скачанные страницы. Например, есть каталог "Мой сайт", в котором лежит index.html, содержащий тег <img src="picture.jpg">. picture.jpg находится в том же каталоге. При открытии index.html картинка не видна. Когда щелкаешь показать катринку, ругается что путь не найден и показывает путь к picture.jpg, где вместо "Мой сайт" двухсимвольные знаки (лакаль UTF-8). При путях на аглицком все ок. Каталог "Мой сайт" создан хоть в линуксе, хоть на подмонтированных виндовых - без разницы. В диалогах Konqueror'а все пути и имена на русском отображаются корректно. Вот. 2) Gaim не получает сообщения на русском. Отправляет отлично: собеседник все видит, может присылать ответы аглицкими буквами. Напишет русскими - вместо текста сообщение об ошибке. Точно сейчас не передам, но насчет того, что язык клиента не тот. Это касается клиентов под виндой. Два gaim'а же общаются без проблем. В линуксе, как можно догадаться по вопросу №1, локаль UTF-8. Можно чем-то настроить, или придется брать исходники и самому лазить в сишных текстах? Есть способ легче или готовое решение? PS: ставить что-то кроме гэйма не буду, надо править что есть. ---- PPS: система дженту на 2.6, софт свежий Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Ineu Опубликовано 9 марта, 2005 Жалоба Поделиться Опубликовано 9 марта, 2005 2. Не уверен, о том ли идет речь, но с какими протоколами Вы используете GAIM? У мя глюк с кириллицей, если пользовать его как ICQ - клиент, если же как Jabber - общение с виндозными клиентами не составляет проблем Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Пингвинчик Опубликовано 9 марта, 2005 Автор Жалоба Поделиться Опубликовано 9 марта, 2005 Значит нас уже двое Будем ждать ответа... Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Ineu Опубликовано 9 марта, 2005 Жалоба Поделиться Опубликовано 9 марта, 2005 Цитата: Будем ждать ответа... Будем, но я - из чистого любопытства. Жаббер работает - и то ладно, а для АСИ мне и micq хватает )) Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Пингвинчик Опубликовано 12 марта, 2005 Автор Жалоба Поделиться Опубликовано 12 марта, 2005 Проблема с gaim решилась. К сожалению, я не нашел патча для своей версии 1.0.2, только для 0.75 и для какой-то годичной давности с CVS... Но они какие-то здоровенные и старые и я ими не рискнул воспользоваться. Посмотрел только в каком файле надо копаться. Итак, чтобы заставить аську работать, я сделал следующее: нашел в файле gaim-1.0.2/src/protocols/oscar/oscar.c следующую функцию: static gchar * oscar_encoding_to_utf8(const char *encoding, const char *text, int textlen) { gchar *utf8 = NULL; if ((encoding == NULL) || encoding[0] == '\0') { gaim_debug_info("oscar", "Empty encoding, assuming UTF-8\n"); } else if (!strcmp(encoding, "iso-8859-1") || !strcmp(encoding, "ISO-8859-1-Windows-3.1-Latin-1")) { utf8 = g_convert(text, textlen, "UTF-8", "ISO-8859-1", NULL, NULL, NULL); } else if (!strcmp(encoding, "unicode-2-0")) { utf8 = g_convert(text, textlen, "UTF-8", "UCS-2BE", NULL, NULL, NULL); } else if (strcmp(encoding, "us-ascii") && strcmp(encoding, "utf-8")) { gaim_debug_warning("oscar", "Unrecognized character encoding \"%s\", " "attempting to convert to UTF-8 anyway\n", encoding); utf8 = g_convert(text, textlen, "UTF-8", encoding, NULL, NULL, NULL); } /* * If utf8 is still NULL then either the encoding is us-ascii/utf-8 or * we have been unable to convert the text to utf-8 from the encoding * that was specified. So we check if the text is valid utf-8 then * just copy it. */ if (utf8 == NULL) { if (textlen != 0 && *text != '\0' && !g_utf8_validate(text, textlen, NULL)) utf8 = g_strdup(_("(There was an error receiving this message. The buddy you are speaking to most likely has a buggy client.)")); else utf8 = g_strndup(text, textlen); } return utf8; } и изменил ее следующим образом: static gchar * oscar_encoding_to_utf8(const char *encoding, const char *text, int textlen) { gchar *utf8 = NULL; if ((encoding == NULL) || encoding[0] == '\0') { gaim_debug_info("oscar", "Empty encoding, assuming UTF-8\n"); } else if (!strcmp(encoding, "iso-8859-1") || !strcmp(encoding, "ISO-8859-1-Windows-3.1-Latin-1")) { utf8 = g_convert(text, textlen, "UTF-8", "ISO-8859-1", NULL, NULL, NULL); } else if (!strcmp(encoding, "unicode-2-0")) { utf8 = g_convert(text, textlen, "UTF-8", "UCS-2BE", NULL, NULL, NULL); } else if (!strcmp(encoding, "win-1251")) { utf8 = g_convert(text, textlen, "UTF-8", "WIN-1251", NULL, NULL, NULL); } else if (strcmp(encoding, "us-ascii") && strcmp(encoding, "utf-8")) { gaim_debug_warning("oscar", "Unrecognized character encoding \"%s\", " "attempting to convert to UTF-8 anyway\n", encoding); utf8 = g_convert(text, textlen, "UTF-8", encoding, NULL, NULL, NULL); } /* * If utf8 is still NULL then either the encoding is us-ascii/utf-8 or * we have been unable to convert the text to utf-8 from the encoding * that was specified. So we check if the text is valid utf-8 then * just copy it. */ if (utf8 == NULL) { /*if (textlen != 0 && *text != '\0' && !g_utf8_validate(text, textlen, NULL)) utf8 = g_strdup(_("(There was an error receiving this message. The buddy you are speaking to most likely has a buggy client.)")); else*/ utf8 = g_strndup(text, textlen); } return utf8; } Я не знаю, какое из двух изменений помогло: условие на win-1251 или что вместо ошибки возвращается неизмененный текст, да мне это и неинтересно: код, как видите, тот еще - с искусственными ограничениями (видно, писали с бодуна). PS: дистры на исходниках рулят! PPS: а про конкверор так никто и не знает?.. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Ineu Опубликовано 13 марта, 2005 Жалоба Поделиться Опубликовано 13 марта, 2005 Цитата: дистры на исходниках рулят! Воистину рулят! Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Hans R. Steiner Опубликовано 15 марта, 2005 Жалоба Поделиться Опубликовано 15 марта, 2005 1. Касательно путей: попробуйте настроить локаль с KOI8-R -- ...даже если это не приемлимо, попробуйте. Если будет -- работать, будет ясно, что не так. 2. Я не понимаяю такой катигоричности касательно GAIM. -- Почему Вы не хотите поставить тот же LIcq? -- -- Проблему Вы решили, но на всякий случай, если Вы не совсем -- -- поняли, что сделали (ну все бывает), поясню: -- -- MS Windows (и ПО для него) работает приимущественно с -- -- ихней же кириллической кодировкой CP-1251 в то время, как -- -- в русскоязычных Linux, по большей части, используется -- -- KOI8-R (это так же относится к путям для сайта). Вернусь к вопросу о путях: А для чего Вам русскоязычные имена файлов (директория - тоже файл) в структуре сайта? По моему, кириллица так и не была принята для доменных имен (и для описания url вообще), а следовательно, Вам в любом случае, прийдется переименовывать файлы... если только Вы не единственный человек, который должен видеть этот сайт и только на локальном диске (или сетевом диске). Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
EL[michlen] Опубликовано 15 марта, 2005 Жалоба Поделиться Опубликовано 15 марта, 2005 Цитата: По моему, кириллица так и не была принята для доменных имен (и для описания url вообще) Была, но её почти никто не использует, т.к. нелатинские символы в URL по-любому передаются в шестнадцатиричных кодах. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Пингвинчик Опубликовано 15 марта, 2005 Автор Жалоба Поделиться Опубликовано 15 марта, 2005 1. С локалью KOI-8 попробовать как раз не проблема... А вот что делать, если проблема именно в UTF-ной локали (вопрос пока гипотетический)? 2. GAIM я пользуюсь потому что мне он нравиЦЦа. Имею право. И, разумеется, я бы не стал менять программу, если бы не понимал что такое win-1251, koi-8 и UTF-8. Мне просто странно, что при таких наворотах с перекодировками как в приснопамятном oscar.с, с комментариями в духе "а вот эта перекодировка для дерьмовых клиентов, которые не могут нормально работать с нашим и будут злить пользователей Гэйма" , не работает простой вариант Gaim--аська-для-винды. 3. Русские пути нужны не для сайта, а для просмотра страниц ы офлайне. Например, мозилла сохраняет страницы в файле с именем как их заголовки (на русском) и их картинки в каталоге с таким же именем. Знакомый вариант? А потом открываем эти странички в конквероре в режиме менеджера файлов и они открываются в конквероре как браузере. Реальная ситуация с появлением путей на русском. PS: я не зануда, просто моя мечта - сделать идеальную рабочую станцию на базе Linux Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.