Unicode utf8 et clipboard [Résolu]

Messages postés
2
Date d'inscription
dimanche 3 avril 2005
Statut
Membre
Dernière intervention
9 juin 2014
-
Bonjour,

avec vb.net je cherche à copier du html dans le presse papier.
Ca marche bien, sauf pour les caractères unicode
j'explique :
le "é" vaut h'E9' en utf16, et h'C3A9' en utf8, ce qui donne "é" au final.

si je copie un é depuis une page html et que je regarde ce qu'il y a dans le clipboard, je trouve mon é entre
<!--StartFragment-->
et
<!--EndFragment-->

Version:1.0
StartHTML:000000222
EndHTML:000000365
StartFragment:000000331
EndFragment:000000333
StartSelection:000000331
EndSelection:000000333
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD></HEAD><BODY><!--StartFragment-->é<!--EndFragment--></BODY></HTML>

comment on fait, partant d'un string contenant "é" pour obtenir un autre string contenant "é" ?

j'ai un bout de solution avec ceci :


Dim html_text As String
html_text = "é"

Dim EncUTF8 As System.Text.Encoding = System.Text.Encoding.GetEncoding("utf-8")
Dim utf8Bytes As Byte() = encutf8.GetBytes(html_text )

ici j'obtient bien un tableau de 2 bytes, contenant 195 et 169, ce qui donne c3 et A9
comment est-ce que j'en tire un string avec les 2 caractères "é" ?

j'ai essayé
html_text = utf8Bytes.ToString

mais j'obtiens "System.Byte[]"

merci d'avance
Afficher la suite 

2 réponses

Messages postés
13838
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
19 octobre 2019
311
0
Merci
Déplacé vers VB.Net et colorisation du code html
Commenter la réponse de Whismeril
Messages postés
14569
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
19 octobre 2019
136
0
Merci
Pour l'explication de UTF-8 :
https://en.wikipedia.org/wiki/UTF-8

Sinon, as-tu essayer de convertir en ANSI ou ISO-1152-1 (de mémoire) ton tableau d'octet obtenu ?
jplamontre
Messages postés
2
Date d'inscription
dimanche 3 avril 2005
Statut
Membre
Dernière intervention
9 juin 2014
-
je m'en suis sorti comme ça :

Dim EncDft As System.Text.Encoding = System.Text.Encoding.Default 
Dim EncUTF8 As System.Text.Encoding = System.Text.Encoding.GetEncoding("utf-8")
'convert utf16 to utf8, from char to hexa bytes (= int) format
Dim utf8Bytes As Byte() = encutf8.GetBytes(html_text )
'convert hexa bytes to utf8 chars
dim utf8String As String
utf8String = encdft.GetString(utf8bytes)
NHenry
Messages postés
14569
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
19 octobre 2019
136 -
Ton problème est donc résolu ?
Si c'est le cas, penses à marquer la question comme résolue.
Commenter la réponse de NHenry