public static Unicode::mimeHeaderEncode($string)
Encodes MIME/HTTP headers that contain incorrectly encoded characters.
For example, Unicode::mimeHeaderEncode('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 self::truncateBytes(). This ensures 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 $string: The header to encode.
Return value
string The mime-encoded header.
File
- core/lib/Drupal/Component/Utility/Unicode.php, line 608
Class
- Unicode
- Provides Unicode-related conversions and operations.
Namespace
Drupal\Component\Utility
Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | public static function mimeHeaderEncode( $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 = static ::truncateBytes( $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 ; } |
Please login to continue.