A partir d'une base de données MySQL, je peux extraire les caractères UTF-8 suivants:PHP: Problèmes pour trouver le caractère le plus fréquent dans une chaîne UTF-8 (par exemple: 唐 犬 土 犬 家犬 尨 犬 山 山)?
"唐犬土用家犬尨犬山桑山犬巴戦師子幻日幻月引綱忠犬愛犬戌年成犬教条教義"
Je suis en train de trouver le personnage le plus fréquent dans cette chaîne. J'ai essayé de mettre chaque élément dans un tableau $ arr et de faire array_count_values ($ arr); Malheureusement les opérations de tableau (ou est print_r le coupable?) Produisent une sortie mal encodée comme ceci: [0] => � [1] => � [2] => � [3] => �
Je peux afficher les caractères bien dans d'autres situations (ie récupérer de MySQL et afficher les caractères dans php fonctionne OK!), Mais le les fonctions de tableau (ou la sortie de tableau) semblent gâcher les choses. J'ai changé /etc/php5/apache2/php.ini
et mettre default_charset = "utf-8"
là-dedans.
(et j'ai SET NAMES ...
etc)
A) Où est le problème? B) Pourrais-je faire le travail sans avoir recours à des tableaux (c'est-à-dire en utilisant simplement la fonction de chaîne de caractères)?
Merci pour votre aide. Comment transformez-vous la chaîne en un tableau?
// Voici comment j'ai créé le tableau: while ($ r = mysql_fetch_array ($ resultat) ET $ i <10) {$ text. = $ R ['japanese']; $ i ++; } $ kanji = array(); pour ($ i = 0; $ i
ajo
'strlen()' compte les octets, pas les caractères. Et je ne trouve pas de documentation pour la construction '$ text [$ i]', mais je suis sûr que c'est la même chose. Les commentaires sur http://php.net/manual/fr/function.str-split.php donnent quelques conseils pour les chaînes Unicode. – TRiG
$ text est ma variable chaîne, et $ text [$ i] me donne les caractères $ i-ième à ce moment-là (ce qui fonctionne avec les caractères ascii ...); Je vais essayer vos liens (et le faire dans mysql ...) – ajo