汉字在邮件列表中显示为问号?

问题描述:

我订阅了一个内容主要是中文的邮件列表。每次收到邮件时,每个中文字都被?取代。然后我挖成电子邮件标题,发现汉字在邮件列表中显示为问号?

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

,我认为这就是问题所在,解决了,我需要改变charset一个是与中国兼容。但我在哪里改变这个?

我不认为我可以改变它在我身边,因为无论我使用哪个邮件客户端都会出现问题。邮件列表在Python mailman上运行。

+0

您是否能够使用您的设备在其他应用程序/程序中查看正确的中文字符?我想你可能会错过你的设备的字体。 –

+0

@HarryPehkonen我在其他应用程序中查看中文字符时没有问题。 –

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

这不是问题。

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

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

如:未设置为UTF-8(或正确中国字符集)

  • HTML输入形式,
  • HTML输入表单容器网页未设置为UTF-8,HTML recieving形式/代码未设置为UTF-8(或正确的中文字符集),
  • 未将Emailer模板生成器设置为UTF-8(或正确的中文字符集)。
  • 发送服务器否则不使用默认的UTF-8标头。

而且当你陈述“的内容主要是中国人”这并未缩小多少,因为有至少五个主要中国语言文字,并使用相同或非常相似的字符集小语言的主机。

您希望使用UTF-8编码使用International Resource Identifiers构建电子邮件。 UTF-8实现unicode,并且在unicode中,每个字符都有一个代码点,即所有中文字符的0x4E00和0x9FFF(2个字节)之间。

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

仅供参考:Python Mailman and UTF-8 details(2008年问题)和character conversion guide(2009年)。还this * anwser

+0

谢谢马丁。我非常肯定,这不是一个真正的数据库或其他服务器问题,因为我确实看到其他用户愉快地与中文字符进行交流(对穷人来说我认为是“?”)。有没有解决这个问题的建议? –

+0

@Sibbs阅读该问题,您的问题不会因不同的邮件客户端而发生变化,这意味着该问题更可能是电子邮件编码本身,或者是发件人网站/数据核心上的编码,如我在回答。他们可能没有使用正确的字符集(例如MySQL *'utf8_' *),并且他们不打扰收到他们自己的电子邮件。有没有可能与他们的技术支持交谈? – Martin

+0

@SibbsGambling或者您需要对系统中的某些设置进行根本性更改,您是否可以更详细地分享您的系统是什么以及您尝试过哪些邮件客户端并对此问题进行测试?干杯 – Martin