Название: Не прикрепляет файл с русским именем Отправлено: n2o от Май 07, 2011, 23:36 Пытаюсь отправить файл по e-mail:
Код: QMessageService* m_service; Думал может проблема с кодировкой, но ведь в appendAttachments() можно только QString передать, а значит только UTF-8. Может кто знает в чём дело? Платформа s60 5th edition Название: Re: Не прикрепляет файл с русским именем Отправлено: ритт от Май 08, 2011, 13:37 даю подсказку: QString - это UTF-16
Название: Re: Не прикрепляет файл с русским именем Отправлено: n2o от Май 08, 2011, 14:17 даю подсказку: QString - это UTF-16 это новость ;Dну даже если так, то как мне передать в appendAttachments() строку в другой кодировке? Название: Re: Не прикрепляет файл с русским именем Отправлено: ритт от Май 08, 2011, 15:09 а документация по QString говорит об обратном.
ну даже если так, то как мне передать в appendAttachments() строку в другой кодировке? десятки раз спрашивали уже. поиск по форуму поможет...Название: Re: Не прикрепляет файл с русским именем Отправлено: n2o от Май 10, 2011, 16:54 десятки раз спрашивали уже. поиск по форуму поможет... Извините, но ничего, что помогло бы, не нашёл. Конечно можно в QByteArray записать в какой угодно кодировке, но ведь void QMessage::appendAttachments ( const QStringList & fileNames ) принимает только QStringList. Может тут дело и не в кодировке? Название: Re: Не прикрепляет файл с русским именем Отправлено: shirushizo от Май 10, 2011, 21:37 Еще одна подсказка - QTextCodec.
Если мысли не появились, то вбить QTextCodec в поиск по форуму. Название: Re: Не прикрепляет файл с русским именем Отправлено: ритт от Май 10, 2011, 23:21 QTextCodec нужен только для перекодирования.
а если исходная строка в сорцах, то просто возьмите за правило не делать Код: QString fn; Название: Re: Не прикрепляет файл с русским именем Отправлено: n2o от Май 11, 2011, 08:46 Ещё уточню, что перед отправкой пробовал выводить имя файла на экран, выводилось нормально, но файл не прикрепляется.
Так же пробовал Код: QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8")) Я так понимаю в QTextCodec::setCodecForCStrings() устанавливается кодировка для "сишных" строк, но в данном случае они нигде не используются, а по форуму везде только про это и пишут. Строка не в сорцах, она получается в процессе работы программы Код: QString fn; Название: Re: Не прикрепляет файл с русским именем Отправлено: Пантер от Май 11, 2011, 09:04 Тогда приведи побольше кода.
Название: Re: Не прикрепляет файл с русским именем Отправлено: n2o от Май 11, 2011, 09:24 Вот тут записывается имя файла в строку fn:
Код: QFileDialog dialog(this); Вот тут отправляется файл c именем fn на e-mail: Код: QMessageService* m_service; Название: Re: Не прикрепляет файл с русским именем Отправлено: Mikhail от Май 11, 2011, 17:02 А что это за класс QMessageService ?
Какая версия Qt? Название: Re: Не прикрепляет файл с русским именем Отправлено: n2o от Май 11, 2011, 18:11 А что это за класс QMessageService ? Это QtMobilityКакая версия Qt? Название: Re: Не прикрепляет файл с русским именем Отправлено: Mikhail от Май 11, 2011, 19:15 Проверь результат возващаемый функцией error().
If a requested operation fails after being initiated then the error() function will return a value indicating the failure mode encountered. QMessageManager::Error QMessageService::error () const Returns a value indicating the last error condition encountered by the operation. Название: Re: Не прикрепляет файл с русским именем Отправлено: ритт от Май 12, 2011, 00:04 с этого и надо было начинать, а то неделю сидим тут гадаем что не так с си-строками, которых на самом деле там и не было...(типа, в-нулевых)
во-первых, мобилити - кривая наколенная поделка (не вся, но по большей своей части). хотите водить с ней дружбу - запасайтесь терпением и временем на ковыряние сорцев. во-вторых, какие ос, версия мобилити и системная кодировка? в-третьих, выводит ли что-нибудь на консоль? в дэбаге запускать пробовали? в-четвёртых, сдаётся мне, "QFileInfo fi(attachmentPath); _name = fi.fileName().toLatin1();" - это что-то как-то криво. зы. если будет компилябельный экзампл, воспроизводящий проблему, могу полчасика уделить на ковыряние сорцев. Название: Re: Не прикрепляет файл с русским именем Отправлено: n2o от Май 12, 2011, 10:05 Symbian OS 9.4, QtMobility 1.1.0, Symbian вроде как поддерживает UTF-16, а вот какие ещё не знаю, в инете не могу найти.
Цитировать в-третьих, выводит ли что-нибудь на консоль? в дэбаге запускать пробовали? к сожалению я так и не смог разобраться как пользоваться дебагером в Carbide.C++, на точки остановки не реагирует, и на консоль выводит не понятно что, а отладка на устройстве не работает по непонятным причинам.Цитировать в-четвёртых, сдаётся мне, "QFileInfo fi(attachmentPath); _name = fi.fileName().toLatin1();" - это что-то как-то криво. это вы откуда взяли?Цитировать зы. если будет компилябельный экзампл, воспроизводящий проблему, могу полчасика уделить на ковыряние сорцев. Ну даже если я состряпаю экзампл, вам же нужно будет устанавливать SDK со всеми нужными библиотеками, либо иметь устройство на котором имеются библиотеки qt и qtmobility.error() возвращает QMessageManager::RequestIncomplete The operation failed to report successful completion, although no specific error was reported. То есть не известно от чего не завершилось. Сигнал stateChanged(QMessageService::State) посылает QMessageService::FinishedState, то есть операция завершена. П.С. А QtMobility всё же придётся использовать, чтобы сохранить кросс-платформенность. Название: Re: Не прикрепляет файл с русским именем Отправлено: ритт от Май 13, 2011, 05:40 Цитировать в-четвёртых, сдаётся мне, "QFileInfo fi(attachmentPath); _name = fi.fileName().toLatin1();" - это что-то как-то криво. это вы откуда взяли?Цитировать зы. если будет компилябельный экзампл, воспроизводящий проблему, могу полчасика уделить на ковыряние сорцев. Ну даже если я состряпаю экзампл, вам же нужно будет устанавливать SDK со всеми нужными библиотеками, либо иметь устройство на котором имеются библиотеки qt и qtmobility. |