PHP Conference Japan 2024

imap_utf8

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_utf8将 MIME 编码的文本转换为 UTF-8

描述

imap_utf8(字符串 $mime_encoded_text): 字符串

如果声明的字符集为 libc-client 所知,则将给定的 mime_encoded_text 转换为 UTF-8。否则,将对给定的文本进行解码,但不会转换为 UTF-8。

参数

mime_encoded_text

MIME 编码字符串。MIME 编码方法和 UTF-8 规范分别在 » RFC2047» RFC2044 中进行了描述。

返回值

如果可能,返回解码后的字符串,并转换为 UTF-8。

示例

示例 #1 基本 imap_utf8() 用法

<?php
echo imap_utf8("Johannes =?ISO-8859-1?Q?Schl=FCter?=");
?>

以上示例将输出类似于以下内容

Johannes Schlüter

参见

添加注释

用户贡献的注释 3 条注释

7
esvit at mail dot ru
13 年前
这修复了所有大写字母问题

<?php
function imap_utf8_fix($string) {
return
iconv_mime_decode($string,0,"UTF-8");
}
?>
5
kloewer at gmail dot com
13 年前
使用 iconv_mime_decode();

<?php
// 这将产生 "Subject: Prüfung Prüfung"
echo iconv_mime_decode("Subject: =?UTF-8?B?UHLDvGZ1bmcgUHLDvGZ1bmc=?=",
0, "ISO-8859-1");
?>

https://php.net/manual/de/function.iconv-mime-decode.php
2
marcelo at maccoy dot com dot br
19 年前
# 此脚本使用正确的符号删除表达式是正确的
# 请忽略后面的内容。
function decode_utf8($str){
# 模式
$err="(=\?.{10,13}q\?_?|\?\=)";
$pat = "/=([0-9A-F]{2})/";
$cha="'.chr(hexdec(";
# 删除字符串中的空符号
$str=eregi_replace($err,"",$str);
# 使用 eval 解码并替换
eval("\$str='".
preg_replace($pat,$cha."'$1')).'",$str)
."';");
# 返回
return $str;
}
# 注意:您可以将此脚本减少为 3 行。
To Top