加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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);

用户在文本框中输入一些内容:
alt text http://lh3.ggpht.com/_1TPOP7DzY1E/S1y6Y0wb9tI/AAAAAAAAC88/OkdMQkO47HQ/s800/works.png

并提交表格.

我收到什么(在GMAIL中):

Содержание работ:       1)Р?Р?Р?РμС?Р?Р°Р?РёРμ 2)RABOT

所以,硬编码的俄语文本 – 好的,通过表格发送俄语文本 – NOK,通过ASCII文本格式发送 – 确定.

有人知道编码的奇怪行为可能是什么原因?

编辑:
用过的

$subject = "  оборудования  - subject with russian letters";
$subject = '=?UTF-8?B?' . base64_encode($subject) . '?=';
$message .= $subject;

获得一个像
? – subject with russian letters http://lh6.ggpht.com/_1TPOP7DzY1E/S1zFqFe9ohI/AAAAAAAAC9E/PZ7C4JtEHTU/s800/subject.png

解决方法

你需要base64_encode()你的$subject,如下所示:

$subject = '=?UTF-8?B?' . base64_encode($subject) . '?=';

确保您还将编码为UTF-8的.php文件保存为无BOM.

这个问题也许你会感兴趣:Is this the correct way to send email with PHP?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读