email - 邮件列表中的汉字显示为问号?

标签 email mailing-list mailman

我订阅了一个邮件列表,其内容主要是中文。每次我收到电子邮件时,每个汉字都被替换为。然后我深入研究电子邮件标题并发现

> Content-Type: text/plain; charset="utf-8"

我认为这就是问题所在,要解决这个问题,我需要将字符集更改为与中文兼容的字符集。但是我应该在哪里更改它呢?

我认为我无法更改它,因为无论我使用哪种邮件客户端,问题都会出现。邮件列表在 Python mailman 上运行。

最佳答案

Content-Type: text/plain; charset="utf-8"

这不是问题。

UTF-8 可以显示每种语言的每个字符。实际发生的情况很可能是,相关网站将数据存储在不是真正的 UTF-8 的数据库中,例如 MySQL utf8_ 排序规则和字符集 which are not true UTF-8

如果不是数据库存储问题,则问题来自生成电子邮件或将数据插入电子邮件模板时使用的字符集,而电子邮件的来源不是 UTF-8 或相应的全中文字符集。

如:

  • HTML 输入表单未设置为 UTF-8(或正确的中文字符集),
  • HTML 输入表单容器网页未设置为 UTF-8,HTML 接收表单/代码未设置为 UTF-8(或正确的中文字符集),
  • 电子邮件模板生成器未设置为 UTF-8(或正确的中文字符集)。
  • 发送服务器不使用默认的 UTF-8 header 。

此外,虽然您声明“内容主要是中文”,但这并没有缩小太多范围,因为至少有五种主要中文书面语言和许多使用相同或非常相似字符的较小语言套。

您希望使用 International Resource Identifiers 和 UTF-8 编码构建电子邮件。 UTF-8 实现了 unicode,在 unicode 中,每个字符都有一个代码点,对于所有汉字来说,代码点位于 0x4E00 到 0x9FFF(2 个字节)之间。

但是 UTF8 不会仅通过存储代码点来对字符进行编码(UTF32 就是这样做的)。相反,它使用更复杂的标准,使所有中文表意文字的长度为 2 或 3 个字节。

供引用:Python Mailman and UTF-8 details(2008 年问题)和 character conversion guide(2009 年问题)。还有 this Stackoverflow anwser

关于email - 邮件列表中的汉字显示为问号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36962267/

相关文章:

php - 使用 PHP 发送多部分/替代电子邮件的问题

angular - 如何使用 Angular 7 发送电子邮件

php - 内容长度无效和 HTTP 413 错误?

python - Mailman 是否有 API 或导出列表、用户和所有者选项?

ruby-on-rails - 如何使用 mailman 处理电子邮件线程

html - 为什么我在 Mailchimp 中的 html 模板看起来与我在 gmail 桌面/移动设备上收到的不同

python - 这个 Perl XML 过滤器在 Python 中是什么样子的?

php - 使用数据库连接通过 phpmailer 发送邮件()的正确方法

python - 如何在 Django 中模拟邮件列表?

java - 人们去哪里获取安全警报通知?