Unicode — PHP, преобразовать строку в UTF-8 и затем шестнадцатеричный

В PHP я хочу преобразовать строку, содержащую символы не ASCII, в последовательность шестнадцатеричных чисел, которая представляет кодировку UTF-8 этих символов. Например, учитывая это:

$text = 'ąćę';

Мне нужно произвести это:

C4=84=C4=87=C4=99

Как я могу это сделать?

1

Решение

Когда ваш вопрос написан и предполагается, что ваш текст правильно закодирован в 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_encode (требуется PHP 5.3 или выше).

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]