Maison  >  Article  >  développement back-end  >  Comment changer le chinois en hexadécimal en php

Comment changer le chinois en hexadécimal en php

PHPz
PHPzoriginal
2023-04-24 10:50:311661parcourir

PHP est un langage de programmation populaire largement utilisé dans le domaine du développement Web. Au cours du processus de développement, il est parfois nécessaire de convertir le texte chinois en hexadécimal pour faciliter le stockage, la transmission et le traitement. Cet article explique comment utiliser PHP pour réaliser la fonction de conversion du chinois en hexadécimal.

1. Qu'est-ce que l'hexadécimal

Dans les ordinateurs, les nombres sont stockés et calculés sous forme binaire (composé de 0 et 1). L'hexadécimal est une méthode de représentation de nombres binaires, utilisant 16 caractères (0-9, A-F) pour représenter 16 nombres (0-15).

Par exemple, le nombre hexadécimal correspondant au nombre décimal 10 est A, et le nombre hexadécimal correspondant au nombre décimal 255 est FF.

2. Convertir le chinois en hexadécimal

En PHP, vous pouvez utiliser la fonction bin2hex() pour convertir une chaîne en hexadécimal. Cependant, cette fonction ne peut convertir que les lettres anglaises, les chiffres et certains symboles en hexadécimal, et ne peut pas convertir directement le chinois en hexadécimal.

Afin de résoudre ce problème, nous pouvons utiliser la méthode de conversion octet par octet du codage UTF-8 pour convertir les caractères chinois en représentation hexadécimale un par un. La méthode spécifique est la suivante :

$string = "Chinese string";
$hex = '';
for ($i = 0; $i < mb_strlen($string); $i++) {

$hex .= sprintf("%02X", ord(mb_substr($string, $i, 1)));

}
echo $hex; // Sortie "E4B8ADE69687E5AD97E7ACACE4B8B2E7A792E7958C"
?>

Dans le code ci-dessus, nous définissons d'abord une chaîne contenant du chinois, puis utilisons une boucle pour obtenir l'octet de caractère codé en UTF-8 par séquence de sections d'octets et utilisez la fonction sprintf() pour convertir chaque octet en une représentation hexadécimale à deux chiffres. Enfin, en rassemblant toutes les représentations hexadécimales, la représentation hexadécimale de la chaîne chinoise est obtenue.

3. Convertir l'hexadécimal en chinois

De même, nous pouvons également utiliser la fonction hex2bin() pour convertir l'hexadécimal en chaîne. Cependant, étant donné que les caractères chinois sont généralement stockés et transmis sous forme de codage UTF-8, lors de la conversion de caractères hexadécimaux en caractères chinois, vous devez d'abord convertir l'hexadécimal en une séquence d'octets codée en UTF-8, puis utiliser la fonction mb_convert_encoding(). pour convertir une séquence d'octets en chaîne.

La méthode spécifique est la suivante :

$hex = "E4B8ADE69687E5AD97E7ACACE4B8B2E7A792E7958C";
$string = '';
for ($i = 0; $i < strlen($hex); $i += 2 ) {

$string .= chr(hexdec(substr($hex, $i, 2)));

}
$string = mb_convert_encoding($string, "UTF-8", "GBK");
echo $string; // Sortie "Chaîne chinoise"
?>

Dans ce qui précède code, Nous avons d'abord défini une chaîne hexadécimale, puis utilisé une boucle pour obtenir la représentation hexadécimale de chaque octet un par un, l'avons converti en code ASCII correspondant, puis utilisé la fonction chr() pour convertir le code ASCII en caractères. Notez que puisque les caractères chinois sont généralement stockés et transmis en codage GBK, lors de la conversion d'une séquence d'octets en chaîne, vous devez définir le codage cible sur UTF-8.

4. Résumé

Cet article explique comment utiliser PHP pour convertir le chinois en hexadécimal et convertir l'hexadécimal en chinois. Il convient de noter que lors de la conversion de l'hexadécimal en chinois, vous devez d'abord convertir l'hexadécimal en une séquence d'octets codée en UTF-8 et la décoder en codage UTF-8. J'espère que cet article pourra aider les développeurs à traiter le texte chinois plus facilement.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn