Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Problème de gestion des caractères Unicode (Chinois)

2 réponses
Avatar
Thierry DEMAN [MVP]
Bonjour à tous,

dans un "petit" développement réalisé actuellement en VB6 (eh oui, je ne
peux pas utiliser VB.net), j'ai un soucis pour avec les dossiers et fichiers
écris avec des caractères chinois !

J'utilise les fonctions développées par "Brad Martinez"
(http://vbnet.mvps.org/index.html?code/shell/shchangenotify.htm) et qui
permettent d'intercepter les évènements sur un ou plusieurs dossiers !

Aucun problème pour les caractères classiques et même
ésotériques...(ÏÎ..ÖÔ...), mais les caractères chinois ne passent pas !
=> c'est à dire que la fonction "Function GetDisplayNameFromPIDL(pidl As
Long) As String" ne me permet pas de pointer ou de retrouver le dossier ou
fichier correspondant à l'évènement.

Malgré mes recherches sur les sites chinois, je n'ai pas trouvé de
correctif!

En espérant que certains auraient été confrontés au même type de problème !

A bientôt,
--
Thierry DEMAN-BARCELÒ
MVP Exchange, SQL/Server
MCSE2003+M+S,MCSE+I,MCDBA
http://ofniorcim.dyndns.org
http://faqexchange.dyndns.org

2 réponses

Avatar
Jacques93
Bonjour Thierry DEMAN,
Thierry DEMAN [MVP] a écrit :
Bonjour à tous,

dans un "petit" développement réalisé actuellement en VB6 (eh oui, je ne
peux pas utiliser VB.net), j'ai un soucis pour avec les dossiers et fichiers
écris avec des caractères chinois !

J'utilise les fonctions développées par "Brad Martinez"
(http://vbnet.mvps.org/index.html?code/shell/shchangenotify.htm) et qui
permettent d'intercepter les évènements sur un ou plusieurs dossiers !

Aucun problème pour les caractères classiques et même
ésotériques...(ÏÎ..ÖÔ...), mais les caractères chinois ne passent pas !
=> c'est à dire que la fonction "Function GetDisplayNameFromPIDL(pidl As
Long) As String" ne me permet pas de pointer ou de retrouver le dossier ou
fichier correspondant à l'évènement.

Malgré mes recherches sur les sites chinois, je n'ai pas trouvé de
correctif!



Je n'ai pas eu ce problème, et n'y connait rien en langues asiatiques.
Mais j'ai trouvé ce code :

Public Function GetDisplayNameFromPIDL(pidl As Long) As String
Dim sfib As SHFILEINFOBYTE
If SHGetFileInfoPidl(pidl, 0, sfib, Len(sfib), SHGFI_PIDL Or
SHGFI_DISPLAYNAME) Then
GetDisplayNameFromPIDL GetStrFromBufferA(StrConv(sfib.szDisplayName, vbUnicode))
End If
End Function

ici :

http://www.teway.net/Support_techInfo.asp?NewsID(75

site qui semble être basé en Chine. Par contre pour les idéogrammes, je
ne me prononce pas ... :-)

Je ne sais pas si cela pourra t'aiguiller sur une voie.

--
Cordialement,

Jacques.
Avatar
Thierry DEMAN [MVP]
Bonsoir,

j'avais effectivement trouvé ce site, malheureusement il n'y a pas de
différence avec la fonction d'origine.

A bientôt,
--
Thierry DEMAN-BARCELÒ
MVP Exchange, SQL/Server
MCSE2003+M+S,MCSE+I,MCDBA
http://ofniorcim.dyndns.org
http://faqexchange.dyndns.org
"Jacques93" wrote in message
news:
Bonjour Thierry DEMAN,
Thierry DEMAN [MVP] a écrit :
Bonjour à tous,

dans un "petit" développement réalisé actuellement en VB6 (eh oui, je ne
peux pas utiliser VB.net), j'ai un soucis pour avec les dossiers et
fichiers
écris avec des caractères chinois !

J'utilise les fonctions développées par "Brad Martinez"
(http://vbnet.mvps.org/index.html?code/shell/shchangenotify.htm) et qui
permettent d'intercepter les évènements sur un ou plusieurs dossiers !

Aucun problème pour les caractères classiques et même
ésotériques...(ÏÎ..ÖÔ...), mais les caractères chinois ne passent pas !
=> c'est à dire que la fonction "Function GetDisplayNameFromPIDL(pidl As
Long) As String" ne me permet pas de pointer ou de retrouver le dossier
ou
fichier correspondant à l'évènement.

Malgré mes recherches sur les sites chinois, je n'ai pas trouvé de
correctif!



Je n'ai pas eu ce problème, et n'y connait rien en langues asiatiques.
Mais j'ai trouvé ce code :

Public Function GetDisplayNameFromPIDL(pidl As Long) As String
Dim sfib As SHFILEINFOBYTE
If SHGetFileInfoPidl(pidl, 0, sfib, Len(sfib), SHGFI_PIDL Or
SHGFI_DISPLAYNAME) Then
GetDisplayNameFromPIDL > GetStrFromBufferA(StrConv(sfib.szDisplayName, vbUnicode))
End If
End Function

ici :

http://www.teway.net/Support_techInfo.asp?NewsID(75

site qui semble être basé en Chine. Par contre pour les idéogrammes, je ne
me prononce pas ... :-)

Je ne sais pas si cela pourra t'aiguiller sur une voie.

--
Cordialement,

Jacques.