Question [RESOLU] Problème d'encodage

Plus d'informations
il y a 14 ans 2 mois #10825 par Laurent Dardenne
Réponse de Laurent Dardenne sur le sujet Re:Problème d'encodage
Il faut créer un instance d'un type d'encodage, comme indiqué ici
[code:1]
$encodage = New-Object System.Text.utf8encoding
[System.Console]::OutputEncoding = $encodage
[/code:1]
Ainsi je n'ai plus le crash :)<br><br>Message édité par: Laurent Dardenne, à: 23/12/11 20:04

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 14 ans 2 mois #10826 par Thierry
Réponse de Thierry sur le sujet Re:Problème d'encodage
Merci pour l'info...

J'ai essayé pour voir si cela résolvait mes erreurs ...mais non. Il fait que je creuse le sujet.

Par contre ton lien pointe vers ce post....une erreur ?


Bonne soirée.

Thierry<br><br>Message édité par: thierry92, à: 23/12/11 18:45

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 14 ans 2 mois #10829 par Arnaud Petitjean
Réponse de Arnaud Petitjean sur le sujet Re:Problème d'encodage
Pas de crash pour moi sur un Windows 7 x64 US.

Mais effectivement, on dirait bien qu'il s'agit d'un probleme d'encodage lie a la console.

Joyeux Noel egalement a tous !

Arnaud

MVP PowerShell et créateur de ce magnifique forum :-)
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 14 ans 2 mois #10830 par Laurent Dardenne
Réponse de Laurent Dardenne sur le sujet Re:Problème d'encodage
thierry92 écrit:

J'ai essayé pour voir si cela résolvait mes erreurs ...mais non. Il fait que je creuse le sujet.

:(
Mais la création d'instance reste nécessaire.
Essaie sans charger le profile de PS, ou d'effectuer l'export via un appel à cmd.exe.
En même temps PS utilise par défaut unicode.
thierry92 écrit:

Par contre ton lien pointe vers ce post....une erreur ?

Non une étourderie...

De mon côté j'ai le même pb sur des exports Subversion, du coup je me suis remis à étudier le pb, sans trop de succés.

[edit]
J'ai corrigé le lien sur msconnect, un pb d'encodage remonté par un suédois ;)<br><br>Message édité par: Laurent Dardenne, à: 23/12/11 20:23

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 14 ans 2 mois #10832 par Thierry
Réponse de Thierry sur le sujet Re:Problème d'encodage
Bon si je comprends bien, en simplifiant beaucoup :

Je crée un objet \&quot;texte-UTF8\&quot; et j'affecte à la console Powershell cette valeur afin que le texte sortant sur la console soit à ce format alors que par défaut il est en ASCII.

De cette façon lorsque invoke-expression lance sqlite la sortie de sqlite, en UTF8, est bien gérée (pas de conversion sauvage vers ASCII) et donc l'envoie vers un fichier ne pose plus de problème.

Néanmoins il me reste des questions :

- quand je fait
[code:1]
$encodage = New-Object System.Text.utf8encoding
[System.Console]::OutputEncoding = $encodage
[/code:1]

la variable $outputencoding ne varie pas ne devrait-elle pas être en UTF8 et plus en US-ASCII ?

- par contre bizarrement si je fais :
[code:1]
$encodage = New-Object System.Text.utf8encoding
[System.Console]::OutputEncoding = $encodage
[/code:1]

alors tous les write-host traitant un texte accentué provoquent une erreur et ne s'affiche pas sur la console. Bien pire si je change write-host par write-output, PS plante carrément , vous avez une idée ?

Finalement, j'ai trouvé cette solution qui semble fonctionner mais qui n'est peut-être pas très \&quot;belle\&quot; :

[code:1]
# on sauvegarde l'encodage original de la console :

$saveencodage = New-Object System.Text.ASCIIEncoding

# on converti l'encodage de la console en UTF8

$encodage = New-Object System.Text.utf8encoding
[System.Console]::OutputEncoding = $encodage

# on lance la commande :

$file = @(Invoke-Expression \&quot; &amp;'$cheminSql3' -html -header \&quot;\&quot;$($_.fullname)\&quot;\&quot; 'SELECT * FROM pages_content ORDER BY docid' \&quot; )

# on rétabli l'encodage original de la console.

[System.Console]::OutputEncoding = $saveencodage
[/code:1]

...et comme ça l'affichage à l'écran des caractères accentués ne pose pas de pb via write-host et mon rapport html est nickel. Par contre je dois faire ces démarches à chaque utilisation de sqlite.exe...

M'enfin ça marche alors un grand MERCI :)))

et Joyeux Noël à tous !!

Thierry<br><br>Message édité par: thierry92, à: 23/12/11 22:36

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 14 ans 2 mois #10833 par Laurent Dardenne
Réponse de Laurent Dardenne sur le sujet Re:Problème d'encodage
thierry92 écrit:

Néanmoins il me reste des questions :

Là pour les mystères de PowerShell, faut t'adresser à Bruce Payette ou à Jeffrey Snover.
thierry92 écrit:

M'enfin ça marche alors un grand MERCI

Ouai, bah ça c'est encore un coup du père Noël :ohmy:

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.097 secondes
Propulsé par Kunena