簡體   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