[英]PHP, convert string into UTF-8 and then hexadecimal
在PHP中,我想將包含非ASCII字符的字符串轉換為代表這些字符的UTF-8編碼的十六進制序列。 例如,鑒於此:
$text = 'ąćę';
我需要產生這個:
C4=84=C4=87=C4=99
我怎么做?
在編寫問題時,並假設您的文本以正確的UTF-8編碼開頭,這應該可以:
$text = 'ąćę';
$result = implode('=', str_split(strtoupper(bin2hex($text)), 2));
如果您的文字不是UTF-8,而是其他一些編碼,則可以使用
$utf8 = mb_convert_encoding($text, 'UTF-8', $yourEncoding);
使其進入UTF-8,其中$yourEncoding
是其他一些字符編碼,例如'ISO-8859-1'
。
之所以可行,是因為在PHP中,字符串只是字節數組。 因此,只要您對文本進行正確的編碼即可開始,那么您無需執行任何特殊操作即可將其視為字節。 實際上,此代碼無需修改即可用於您想要的任何字符編碼。
現在,如果您想做quoted-printable,那又是另一回事了。 您可以嘗試使用函數quoted_printable_encode
(需要PHP 5.3或更高版本)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.