function mime_header_encode
mime_header_encode($string)
Encodes MIME/HTTP header values that contain incorrectly encoded characters.
For example, mime_header_encode('tést.txt') returns "=?UTF-8?B?dMOpc3QudHh0?=".
See http://www.rfc-editor.org/rfc/rfc2047.txt for more information.
Notes:
- Only encode strings that contain non-ASCII characters.
- We progressively cut-off a chunk with truncate_utf8(). This is to ensure each chunk starts and ends on a character boundary.
- Using \n as the chunk separator may cause problems on some systems and may have to be changed to \r\n or \r.
Parameters
$string: The header to encode.
Return value
string The mime-encoded header.
See also
File
- includes/unicode.inc, line 389
- Provides Unicode-related conversions and operations.
Code
function mime_header_encode($string) { if (preg_match('/[^\x20-\x7E]/', $string)) { $chunk_size = 47; // floor((75 - strlen("=?UTF-8?B??=")) * 0.75); $len = strlen($string); $output = ''; while ($len > 0) { $chunk = drupal_truncate_bytes($string, $chunk_size); $output .= ' =?UTF-8?B?' . base64_encode($chunk) . "?=\n"; $c = strlen($chunk); $string = substr($string, $c); $len -= $c; } return trim($output); } return $string; }
© 2001–2016 by the original authors
Licensed under the GNU General Public License, version 2 and later.
Drupal is a registered trademark of Dries Buytaert.
https://api.drupal.org/api/drupal/includes!unicode.inc/function/mime_header_encode/7.x