Unicode utf8 et clipboard [Résolu]

Messages postés
2
Date d'inscription
dimanche 3 avril 2005
Dernière intervention
9 juin 2014
- 5 mai 2014 à 22:52 - Dernière réponse :
Messages postés
14299
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
16 novembre 2018
- 9 juin 2014 à 13:51
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

4 réponses

Messages postés
12267
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
18 novembre 2018
- 5 mai 2014 à 23:00
0
Merci
Déplacé vers VB.Net et colorisation du code html
Commenter la réponse de Whismeril
Messages postés
14299
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
16 novembre 2018
- 9 juin 2014 à 00:00
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 ?
Messages postés
2
Date d'inscription
dimanche 3 avril 2005
Dernière intervention
9 juin 2014
- 9 juin 2014 à 09:53
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)
Messages postés
14299
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
16 novembre 2018
- 9 juin 2014 à 13:51
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.