如何在 php 中获取带有德语语言环境的 imap 正文文本?
How to get imap body text with german locale in php?
当我尝试在php中通过imap获取邮件正文时,变量$body
的内容是
Jääätzt Kööönmän umläute mit ÄnhÄÄÄng
而不是
Jääätzt Kööönmän umläute mit ÄnhÄÄÄng
.
我不明白问题出在哪里,所有其他字符如 ?,!,$
都工作正常,只有像 ä,ö
这样的德语字符会出现这些问题。
我使用的 php 中的代码块是
$body = imap_fetchbody($mbox, $overview->msgno, 1.2);
if (!strlen($body) > 0) {
$body = imap_fetchbody($mbox, $overview->msgno, 1);
}
你有什么想法吗?我真的很绝望。
您尝试显示的邮件与您网站的 headers 的编码不同。这就是您的浏览器无法正确显示特殊字符的原因,例如本例中的变音符号。
例如,您可以使用 imap_utf8
将它们转换为 utf-8
$body = imap_fetchbody($mbox, $overview->msgno, 1.2);
if (!strlen($body) > 0) {
$body = imap_fetchbody($mbox, $overview->msgno, 1);
}
$body = imap_utf8($body);
当我尝试在php中通过imap获取邮件正文时,变量$body
的内容是
Jääätzt Kööönmän umläute mit ÄnhÄÄÄng
而不是
Jääätzt Kööönmän umläute mit ÄnhÄÄÄng
.
我不明白问题出在哪里,所有其他字符如 ?,!,$
都工作正常,只有像 ä,ö
这样的德语字符会出现这些问题。
我使用的 php 中的代码块是
$body = imap_fetchbody($mbox, $overview->msgno, 1.2);
if (!strlen($body) > 0) {
$body = imap_fetchbody($mbox, $overview->msgno, 1);
}
你有什么想法吗?我真的很绝望。
您尝试显示的邮件与您网站的 headers 的编码不同。这就是您的浏览器无法正确显示特殊字符的原因,例如本例中的变音符号。
例如,您可以使用 imap_utf8
$body = imap_fetchbody($mbox, $overview->msgno, 1.2);
if (!strlen($body) > 0) {
$body = imap_fetchbody($mbox, $overview->msgno, 1);
}
$body = imap_utf8($body);