Dans la fonction de traitement des chaînes multi-octets PHP, MB_Convert_kana est une fonction très pratique, principalement utilisée pour diverses conversions de caractères japonais, tels que la conversion de la pleine et demie, la conversion du cardikatana de l'entreprise Hiragana de Kana, etc. Sa forme d'utilisation est à peu près comme suit:
string mb_convert_kana(string $string, string $mode = "KV", ?string $encoding = null)
Où, le paramètre MODE $ est une combinaison de plusieurs lettres de drapeau utilisées pour spécifier la méthode de conversion. Les gens se demandent souvent si l'ordre de plusieurs drapeaux en mode $ est différent, le résultat de la conversion sera-t-il différent? Cet article analysera ce problème en détail sur la base de cas spécifiques.
Énumérons brièvement quelques lettres et significations de logo couramment utilisées:
K : Convertir Katakana pleine largeur en demi-largeur katakana
V : Restaurer les symboles vocaux et semi-voinés en demi-largeur katakana au pseudonyme complet de la voix
H : Convertir les numéros d'anglais pleine largeur en numéros d'anglais demi-largeur
R : Convertir l'alphanumérique pleine largeur et les symboles en demi-largeur
R : Convertir les numéros d'anglais demi-largeur en numéros d'anglais pleine largeur
S : Convertir l'espace pleine largeur en espace demi-largeur
Ces drapeaux peuvent être utilisés en combinaison, par exemple, "KV" signifie que l'opération K est effectuée en premier, puis le fonctionnement V.
Lorsque vous traitez avec les indicateurs de mode $, la commande est en fait très importante. Étant donné que chaque drapeau représente une étape de conversion indépendante, la conversion est effectuée séquentiellement. Si vous effectuez une conversion d'abord, puis une autre, le résultat est souvent différent de l'autre dans l'ordre inverse.
Par exemple:
$input = "カタカナ"; // Katakana pleine largeur
// commande1:D'abordKdosV
$output1 = mb_convert_kana($input, "KV");
// commande2:D'abordVdosK
$output2 = mb_convert_kana($input, "VK");
echo "commandeKVrésultat: $output1\n";
echo "commandeVKrésultat: $output2\n";
L'ordre de "KV" est de convertir le katakana pleine largeur en katakana à demi-largeur (K), puis de convertir les symboles vocaux en katakana à demi-largeur en katakana pleine largeur (V), qui est généralement l'ordre correct et couramment utilisé.
"VK" essaie d'abord de restaurer le symbole vocal dans la demi-largeur Katakana (V), mais comme le personnage est encore Katakana pleine largeur pour le moment, la conversion V ne fonctionnera pas. Ensuite, la conversion K convertira le katakana pleine largeur en demi-largeur, et le résultat final est différent de "KV".
Supposons que la chaîne d'entrée contient du katakana à demi-largeur avec une notation vocale:
$input = "??"; // Katakana demi-largeur“ガ”Split en katakana+Marque de voix
// 按commande使用不同模式
$output1 = mb_convert_kana($input, "KV"); // D'abordKdosV
$output2 = mb_convert_kana($input, "VK"); // D'abordVdosK
echo "entrer: $input\n";
echo "KV模式转换dos: $output1\n";
echo "VK模式转换dos: $output2\n";
En utilisant "KV" , K transformera d'abord le coin complet en moitié du coin (voici déjà le demi-coin, K n'a essentiellement aucun effet), puis V restaurera le katakana à moitié coin plus le symbole vocal au kana "GE" complet.
En utilisant "VK" , V essaie d'abord de restaurer le symbole vocal (avec succès), puis K effectue la conversion (ici, la pleine largeur sera transformée en demi-coin, mais à ce moment, il s'agit d'un pseudonyme de pleine largeur, le convertir en demi-coin), et le résultat final des deux sera différent.
L'ordre des drapeaux dans le paramètre Mode $ de MB_CONVERT_KANA affecte directement les étapes successives du processus de conversion.
Différentes ordres entraîneront différents changements dans les états de caractère, ce qui affectera le résultat de sortie final.
Ce n'est qu'en comprenant correctement l'ordre de signification et de conversion de chaque drapeau que nous pouvons nous assurer que l'effet de conversion est conforme aux attentes.
Des combinaisons communes telles que "KV" , qui convertit d'abord le katakana pleine largeur en demi-largeur, puis restaure les symboles vocaux, qui est un ordre logique et commun.
Pour plus de détails, veuillez consulter le document de fonction MB_CONVERT_KANA dans le manuel PHP officiel.