Unicode utf8 et clipboard [Résolu]

jplamontre 2 Messages postés dimanche 3 avril 2005Date d'inscription 9 juin 2014 Dernière intervention - 5 mai 2014 à 22:52 - Dernière réponse : NHenry 14262 Messages postés vendredi 14 mars 2003Date d'inscriptionModérateurStatut 22 septembre 2018 Dernière intervention
- 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

Whismeril 12032 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 23 septembre 2018 Dernière intervention - 5 mai 2014 à 23:00
0
Merci
Déplacé vers VB.Net et colorisation du code html
Commenter la réponse de Whismeril
NHenry 14262 Messages postés vendredi 14 mars 2003Date d'inscriptionModérateurStatut 22 septembre 2018 Dernière intervention - 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 ?
jplamontre 2 Messages postés dimanche 3 avril 2005Date d'inscription 9 juin 2014 Dernière intervention - 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)
NHenry 14262 Messages postés vendredi 14 mars 2003Date d'inscriptionModérateurStatut 22 septembre 2018 Dernière intervention - 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.