0
我正在制作支持多种语言的C程序。该程序使用WCHAR类型而不是字符发送电子邮件。问题是,当我收到的电子邮件和读它,一些字符无法正确显示,还有一些英文的像E,M,...这是一个例子:Unicode字符显示不正确
<!-- language: lang-c -->
curl_easy_setopt(hnd, CURLOPT_READFUNCTION, payload_source);
curl_easy_setopt(hnd, CURLOPT_READDATA, &upload_ctx);
static const WCHAR *payload_text[]={
L"To: <[email protected]>\n",
L"From: <[email protected]>(Example User)\n",
L"Subject: Hello!\n",
L"\n",
L"Message sent\n",
NULL
};
struct upload_status {
int lines_read;
};
static size_t payload_source(void *ptr, size_t size, size_t nmemb, void *userp){
struct upload_status *upload_ctx = (struct upload_status *)userp;
const WCHAR *data;
if ((size == 0) || (nmemb == 0) || ((size*nmemb) < 1)) {
return 0;
}
data = payload_text[upload_ctx->lines_read];
if (data) {
size_t len = wcslen(data);
memcpy(ptr, data, len);
upload_ctx->lines_read ++;
return len;
}
return 0;
}
你用什么样的环境和编译器? – AlexLordThorsen 2012-08-10 18:14:02
另外,e和m是什么样子?他们有没有重点超过正常字符? – AlexLordThorsen 2012-08-10 18:15:00