gpt4 book ai didi

java - 邮件 header 中 Unicode 字符的翻译

转载 作者:行者123 更新时间:2023-12-02 00:32:12 25 4
gpt4 key购买 nike

我目前正在开发一个模块,该模块可以从服务器以多种语言向客户发送邮件。

  • 我已将邮件内容(收件人、主题和正文)存储在数据库中并从中检索。

  • 所有邮件内容均以 unicode 形式存储在数据库中(例如:ضنتةى 以显示阿拉伯字符.)

  • 我正在使用 Apache 的 commons-email api 发送邮件。 (版本:commons-email-1.1.jar)。

  • 用 JAVA 编码。

  • 使用 Gmail SMTP 主机发送邮件。

  • 当客户发送和接收邮件时-->邮件正文被翻译并显示阿拉伯字符。

问题:主题显示的是我的数据库中的 unicode。没有进行翻译。

我知道必须完成一些邮件 header 配置,但不确定什么以及如何完成。RFC 2047 似乎也提供了一个解决方案,但我如何使用这个特定的 RFC?

提前致谢。-昌丹

最佳答案

正如 @deceze 所说,你并不“真正”使用 unicode。您正在使用 HTML 表示法来标记 unicode 字符。电子邮件正文的格式为 HTML,因此电子邮件客户端会像浏览器一样解释它们。

电子邮件主题不是 HTML 格式正文的一部分,因此无法正确显示。

您应该切换到真正使用 unicode,即将 DB 编码定义为 UTF-8 并存储 unicode 文本,这样您就不会看到像 ضنت 这样的文本。 ةى 但会看到 ىىى 。

在这种情况下一切都会正常。如果您因任何原因无法执行此操作,则必须在 Java 代码中执行“翻译”。

顺便说一句,除了此翻译之外,您还应该指定文档方向 rtl - 从右到左。否则,在具有默认从左到右文档方向的系统上,文本将向左调整。

关于java - 邮件 header 中 Unicode 字符的翻译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8726897/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com