[英]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.