2016-02-18 2 views
1

J'utilise une fonction pour déterminer la valeur unicode en décimal pour différentes fonctions bengali caractères.Dispositif est:Affichage des valeurs différentes unicode pour un même caractère en php

   function uniord($u) { 
        $k = mb_convert_encoding($u, 'UCS-2LE', 'UTF-8'); 
        $k1 = ord(substr($k, 0, 1)); 
        $k2 = ord(substr($k, 1, 1)); 
        return $k2 * 256 + $k1; 
       } 

Il fonctionne pour tous les caractères bengali sauf qui valeur unicode 09DC dans l'hexagone et 2524 dans decimal.This fonctionne parfaitement quand je prends ce personnage de la console/textarea field.such comme:

   $data = $_POST['data']; 
       echo uniord($data); 

Mais est différente afficher la valeur unicode lorsque l'on utilise ce personnage d'une .such variable :

   $data_one = 'ড়'; 
       echo uniord($data_one); 

cette valeur unicode fournissent des 09A1 en hexadécimal ou en décimal 2465 qui est un autre mot similaire, mais pas ma valeur de caractère de désir.

Comment résoudre ce problème. Merci

Répondre

0

U+09DC a une décomposition canonique comme U + 09A1 U + 09BC. Il semble que votre éditeur de texte enregistre le texte en utilisant decomposed normal form. Voyez si vous pouvez changer les paramètres pour pouvoir sauvegarder en utilisant le formulaire normal composé, ou essayez d'utiliser un éditeur de texte différent.

Ou utilisez les codes d'échappement: "\xe0\xa7\x9c"