XL 2013 Carcatères Unicode vers arabe / birman / autre

bool2gom

XLDnaute Junior
Bonjour,

Je récupère des données brutes via SQL, dans un fichier Excel.
Certaines données sont originellement en arabe ou birman.

Résultat, je me retrouve avec cela (équivalent d'un mot)
<U+1031><U+101B><U+1001><U+1032><U+1031><U+101E><U+1010>q<U+102C>=<U+1004><U+1039><U+1037><U+1031><U+101B><U+1001><U+1032><U+1005><U+1000><U+1039><U+1019>:<U+102C><U+1038>

Y'a-t-il un moyen simple de convertir ces valeurs dans la langue originnelle, dans Excel ?
J'ai cherché sur le net mais rien de concret.

Merci,
 

Dranreb

XLDnaute Barbatruc
Re : Carcatères Unicode vers arabe / birman / autre

Bonjour.

Ça ressemble à une codification de la table des caractères qui est convenablement convertie par cette fonction perso :
VB:
Option Explicit

Function ConvChr2(ByVal Z As String) As String
Dim T() As String, N&
On Error Resume Next
T = Split(Z, "<U+")
For N = 1 To UBound(T)
   T(N) = ChrW$(CLng("&H" & Left$(T(N), 4))) & Mid$(T(N), 6)
   Next N
ConvChr2 = Join(T, "")
End Function
Le problème c'est que même en police Arial unicode, il n'y a aucun caractère défini dans cette plage &h1000 à &h109F.
 

Dranreb

XLDnaute Barbatruc
Re : Carcatères Unicode vers arabe / birman / autre

Après implantation dans un module standard, elle est utilisable dans des cellules. Par exemple: =ConvChr2(A1)
Je l'ai un peu modifiée, renommée et écrit la fonction inverse au cas où…
VB:
Option Explicit

Function StrUPlus(ByVal Z As String) As String
Dim T() As String, N&, P&
On Error Resume Next
T = Split(Z, "<U+")
For N = 1 To UBound(T)
   P = InStr(T(N), ">")
   T(N) = ChrW$(CLng("&H" & Left$(T(N), P - 1))) & Mid$(T(N), P + 1)
   Next N
StrUPlus = Join(T, "")
End Function

Function UPlusStr(ByVal Z As String) As String
Dim P&, Cod&
For P = Len(Z) To 1 Step -1
   Cod = AscW(Mid$(Z, P, 1)) And &HFFFF&
   If Cod > &HFF Then Z = Left$(Z, P - 1) & "<U+" & Right$("0000" & Hex$(Cod), 4) & ">" & Mid$(Z, P + 1)
   Next P
UPlusStr = Z
End Function
 

Dranreb

XLDnaute Barbatruc
Re : Carcatères Unicode vers arabe / birman / autre

Bonjour.
Cherchez peut être vos caractères birmans à l'aide de la table des caractères de Windows, mettez en dans une cellule et regardez, à l'aide de ma fonction inverse UPlusStr, comment ils doivent être codés. Vérifiez que la fonction StrUPlus les retrouve bien.
 

bool2gom

XLDnaute Junior
Re : Carcatères Unicode vers arabe / birman / autre

Merci

Voici un exemple d'équivalence unicode pour un mot birman
<U+1006><U+102D><U+102F><U+101E><U+100A><U+1039><U+1019><U+103D><U+102C>

Un 2e exemple
<U+1031><U+1014><U+1000><U+102C><U+1019><U+103A><U+1000><U+1039><U+1019><U+103D><U+1014><U+1039> -<U+1031><U+101B><U+108A><U+1021><U+102D><U+102F><U+1031><U+101B><U+102C><U+1004><U+1039>
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Re : Carcatères Unicode vers arabe / birman / autre

Comme je l'ai déjà dit au poste #2, chez moi, aucun caractère n'est défini pour ces valeur dans ma police Arial Unicode MS. J'ai du thibétain jusqu'à U+0FB9 puis ça passe au géorgien en U+10A0.
Mais si de votre coté ils y sont, ou dans une autre police, ça devrait marcher avec cette police là.
 
Dernière édition:

Statistiques des forums

Discussions
312 338
Messages
2 087 397
Membres
103 534
dernier inscrit
Kalamymustapha