PHP和俄罗斯字母
发布时间:2020-12-13 22:00:15 所属栏目:PHP教程 来源:网络整理
导读:当通过 PHP请求发送邮件时,俄语字母发生了什么? “硬编码”俄罗斯字母正确显示,但从表格的文本框中带有象形文字: HTML页面: tr td style="width: 280px"Содержание работ/td tdinput type="text" id="workContent"//td/tr PHP页面: $Work
当通过
PHP请求发送邮件时,俄语字母发生了什么?
“硬编码”俄罗斯字母正确显示,但从表格的文本框中带有象形文字: HTML页面: <tr> <td style="width: 280px">Содержание работ</td> <td><input type="text" id="workContent"/></td> </tr> PHP页面: $WorkContent = $_REQUEST["workContent"]; //Содержание работ // ... $WorkContentLabel = "Содержание работ"; // ... $message .= $WorkContentLabel . ":t" . $WorkContent . "n"; // ... // email stuff (data below changed) $to = "test@gmail.com"; $from = "me@domain.com"; $from_header = "From: Russian site command "; $subject = "Message with russian letters"; $subject = '=?utf-8?B?'.$subject.'?='; $message .= $subject; // send message mail($to,$subject,$message,$from_header); 用户在文本框中输入一些内容: 并提交表格. 我收到什么(在GMAIL中): Содержание работ: 1)Р?Р?Р?РμС?Р?Р°Р?РёРμ 2)RABOT 所以,硬编码的俄语文本 – 好的,通过表格发送俄语文本 – NOK,通过ASCII文本格式发送 – 确定. 有人知道编码的奇怪行为可能是什么原因? 编辑: $subject = " оборудования - subject with russian letters"; $subject = '=?UTF-8?B?' . base64_encode($subject) . '?='; $message .= $subject; 获得一个像 解决方法
你需要base64_encode()你的$subject,如下所示:
$subject = '=?UTF-8?B?' . base64_encode($subject) . '?='; 确保您还将编码为UTF-8的.php文件保存为无BOM. 这个问题也许你会感兴趣:Is this the correct way to send email with PHP? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |