MAILTO: example@example.com Заголовок = пример и тела =% e5% 85% объявлений
Краткий ответ: нет . Символы должны быть в процентах, как определено RFC 3986 и его предшественниками. RFC 2368 определяет структуру URI mailto.
#include "windows.h"
int main() {
ShellExecute(0, TEXT("open"),
TEXT("mailto:example@example.com?subject=example&body=%e5%85%ad"),
TEXT(""), NULL, SW_SHOWNORMAL);
return 0;
}
Тело в этом случае - это символ CJK U + 516D (& # x516D;), закодированный как UTF-8 (E5 85 AD
). Это правильно работает с Mozilla Thunderbird (вам может потребоваться установить дополнительные шрифты, если это не так).
Остальное зависит от того, как ваш пользовательский агент (почтовый клиент) интерпретирует URI. RFC 3986 обязывает UTF-8, но предыдущие спецификации этого не сделали. Пользовательский агент может неправильно интерпретировать данные, если они предшествуют RFC 3986, не были обновлены или поддерживают обратную совместимость с предыдущими реализациями.
Примечание: функции URLEncode
обычно означают кодировку HTML application/x-www-form-urlencoded
. Это, вероятно, приведет к замене пробелов на символы плюс.
Примечание 2: Я не в курсе состояния поддержки IRI в оболочке Windows, но, вероятно, стоит посмотреть. Тем не менее, некоторые символы в части запроса по-прежнему необходимо кодировать в процентах.