gpt4 book ai didi

php - 提交表单时回复电子邮件中的 Mojibake(但不是每次)

转载 作者:行者123 更新时间:2023-11-29 13:32:47 26 4
gpt4 key购买 nike

我希望这不是一个太具体的问题...任何想法都值得赞赏。

当有人填写我的联系表单(UTF-8 编码)时,数据会正确进入 MySQL 数据库(全程 UTF-8 编码),并且回复电子邮件会发送给填写表单的人(也是 UTF-8)编码)。

如果数据是用英文输入的,一切都很好。如果以日语输入数据,则字符会在数据库中正确呈现,并且回复电子邮件(从数据库中获取姓氏和名字,并且也完全用日语编写)也会正确呈现。一切都很好,对吧?

但有时,回复电子邮件会将字符呈现为 Mojibake,即使发送到通常正确呈现汉字字符的地址也是如此。

我无法复制该错误,但知道它已经发生,因为我的客户已发送回复电子邮件的屏幕截图。还有其他人遇到过这个问题吗?我有点不知所措。我使用Sendmail 软件发送电子邮件。

谢谢

最佳答案

尝试检测它是否有日语,如果有,则使用典型的日语编码发送。您必须对使用汉字的所有其他语言执行此操作 - 甚至可能是俄语等。这真是一个痛苦..

function isKanji($str) {
return preg_match('/[\x{4E00}-\x{9FBF}]/u', $str) > 0;
}

function isHiragana($str) {
return preg_match('/[\x{3040}-\x{309F}]/u', $str) > 0;
}

function isKatakana($str) {
return preg_match('/[\x{30A0}-\x{30FF}]/u', $str) > 0;
}

function isJapanese($str) {
return $this->isKanji($str) || $this->isHiragana($str) || $this->isKatakana($str);
}

$userinputtext = "日本語を認識したいです!";

if (isJapanese($userinputtext)){

mb_language("ja");
$subject = mb_encode_mimeheader($subject,"ISO-2022-JP-MS");
$body = mb_convert_encoding($body,"ISO-2022-JP-MS");
$mail->CharSet = 'ISO-2022-JP';
$mail->Encoding = "7bit";

}

关于php - 提交表单时回复电子邮件中的 Mojibake(但不是每次),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19172392/

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