IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

De UTF-8 à windows-1252


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert Avatar de franculo_caoulene
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 880
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 880
    Par défaut De UTF-8 à windows-1252
    Salut à tous,

    Je tourne en rond et ai, encore et toujours, du mal avec les conversions de chaînes. Curieusement, j'ai beau chercher, je ne trouve jamais rien d'utile.
    Les données de la base sont retournées en UTF-8, je souhaite produire un fichier csv au format windows 1252. Comment faire?

    Petit détail, ça reste du web, je ne veux donc pas créer un fichier sur le server, mais juste une chaîne avec les bonnes entête. La seule incidence est que j'utilise un StringBuilder plutôt qu'un writer. J'ai donc ceci (pour information)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Protected Sub cwGenerer_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles cwGenerer.Click
      Dim FileName As String = "test.csv"
      Response.Clear()
      Response.Charset = "windows-1252"
      Response.ContentType = "text/csv"
      Response.AppendHeader("Content-Disposition", "attachment;filename=" + FileName)
      Response.Write(genererCSV(True))
      Response.End()
    End Sub
    Et ce que j'essaie de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Function convertirVersWindows1252(ByVal ligne As String) As String
      Dim w1252 As Encoding = Encoding.GetEncoding(1252)
      Dim defaut As Encoding = Encoding.Default
      Dim defautBytes As Byte() = defaut.GetBytes(ligne)
      Return w1252.GetString(defautBytes)
    End Function
    En relisant la documentation de Encodig.GetString(), je m'aperçois que ce n'est pas ce que je cherche.

    Auriez-vous une solution à m'apporter?

    Merci par avance.

  2. #2
    Membre Expert Avatar de franculo_caoulene
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 880
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 880
    Par défaut
    Je n'ai pas envie de gérer les jeux de caractères. Je fais ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Function convertirVersWindows1252(ByVal ligne As String) As String
      Dim w1252 As Encoding = Encoding.GetEncoding(1252)
      Return w1252.GetString(Encoding.Convert(Encoding.UTF8, Encoding.GetEncoding(1252), Encoding.Default.GetBytes(ligne)))
    End Function
    Et me retrouve avec des ? pour les caractères invalides. Ce qui me convient pour l'utilité que j'en fais.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Convertir le Windows 1252 en UTF-8
    Par nitro97130 dans le forum VBScript
    Réponses: 0
    Dernier message: 18/05/2011, 19h02
  2. Changement encoding de UTF-8 à Windows-1252
    Par ririrourou dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 09/05/2011, 09h02
  3. Convertir des fichiers de windows-1252 en UTF-8
    Par Baptiste Wicht dans le forum Windows
    Réponses: 3
    Dernier message: 21/10/2009, 14h46
  4. problème conversion windows-1251 en windows-1252
    Par l'auvergnat dans le forum C#
    Réponses: 2
    Dernier message: 07/08/2008, 16h57
  5. [.NET 2.0] Decodage de type windows-1252
    Par Khrysby dans le forum Général Dotnet
    Réponses: 3
    Dernier message: 15/10/2007, 11h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo