Unicode utf8 et clipboard [Résolu]

Messages postés
2
Date d'inscription
dimanche 3 avril 2005
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 

Votre réponse

2 réponses

Messages postés
12565
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
17 janvier 2019
760
0
Merci
Déplacé vers VB.Net et colorisation du code html
Commenter la réponse de Whismeril
Messages postés
14356
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
14 janvier 2019
365
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
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
14356
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
14 janvier 2019
365 -
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

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.