function mime_header_encode in Drupal 5
Same name and namespace in other branches
- 4 includes/unicode.inc \mime_header_encode()
- 6 includes/unicode.inc \mime_header_encode()
- 7 includes/unicode.inc \mime_header_encode()
Encodes MIME/HTTP header values that contain non-ASCII, UTF-8 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.
3 calls to mime_header_encode()
- drupal_mail in includes/
common.inc - Send an e-mail message, using Drupal variables and default settings. More information in the PHP function reference for mail()
- upload_download in modules/
upload/ upload.module - upload_file_download in modules/
upload/ upload.module
File
- includes/
unicode.inc, line 244
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 = truncate_utf8($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;
}