10
votes

Substr avec le problème de caractères japonais

Je fais écho des personnages japonais bien, mais quand j'essaie de substraire et faisons écho à une partie de la chaîne, il suffit de passer à des points d'interrogation ���

Remarque: je fixe mon en-tête sur UTF-8 P> xxx pré>

et a fait le méta CODE> P>

$word = "せんせい";
echo $word;       //works just fine

echo substr($word,-1);    //now it just echoes �

//this one also failed
echo $word[0];    //echoes �


1 commentaires

Veuillez comprendre ce que l'en-tête fait, cela fait simplement une affirmation selon laquelle le contenu que vous donnez est codé dans utf-8 . Ce qu'il n'est pas parce que substr mutilent les octets à invalide utf-8


3 Réponses :


9
votes

Lorsque vous travaillez avec vos chaînes multibytes, vous devez utiliser le chaîne multibyte Fonctions, dans ce cas MB_SUBSTR .


2 commentaires

@ N.b. Désolé de vous avoir offensé ainsi.


Avec toute ma puissance, je trouverai la force de pardonner et d'oublier.



3
votes

Essayez des substrings multibytes, MB_Substr () Info trouvé ici cette fonction est fait pour les caractères non dans l'ensemble de code ASCII anglais.


0 commentaires

2
votes
mb_internal_encoding("UTF-8");//Sets the internal character encoding to UTF-8, for mb_substr to work

0 commentaires