繁体   English   中英

PHP,将字符串转换为UTF-8,然后十六进制

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM