Tutos geek

Tutoriaux linux, debian, android et autres

Augmenter le timeout de SSH

11 juin 2016 - 2 commentaires

Pour ne pas vous faire kick de votre session SSH via PuTTY toutes les 30 secondes (popup d'erreur sur PuTTY ou interface qui freeze) il faut demander au service SSHD de Debian d'allonger la durée du timeout.

vi /etc/ssh/sshd_config

ClientAliveInterval 3600
ClientAliveCountMax 5

/etc/init.d/ssh restart

Le ClientAliveInterval est en secondes.


Source
Open SSH Server connection drops out after few or N minutes of inactivity

Convertir une base MySQL en UTF-8

11 juin 2016 - Aucun commentaire

Introduction

Par soucis de cohérence j'ai voulu convertir les tables de ma base de donnée MySQL encore en latin1 en UTF-8.
Je ne sais pas si la méthode que j'ai choisie est la plus simple et efficace mais en tout cas ça a fonctionné.

Les choses à faire sont :
  • Exporter la ou les tables dans un fichier
  • Remplacer manuellement l'encodage dans ce fichier
  • Forcer le nouveau charset dans MySQL
  • Importer le fichier

1. Vérifier l'encodage utilisé

Pour vérifier comment sont encodé vos tables, lancez la commande suivante dans MySQL.
A noter que si vous la lancez en root sans sélectionner de table, ça va vous donner l'information générale.
Vous pouvez ensuite la relancer table par table, après avoir utilisé use DATABASE_NAME

show variables like 'character_set_%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | latin1                     |
| character_set_connection | latin1                     |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | latin1                     |
| character_set_server     | latin1                     |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+


2. Exporter la table

Sans toucher à l'encodage, exportez la ou les tables à convertir.

mysqldump -u DATABASE_USER -p --add-drop-table --add-drop-database DATABASE_NAME > dump.sql

3. Changer l'encodage du fichier

Copiez le fichier afin de l'altérer

sudo cp dump.sql dump_utf8.sql

Et remplacez l'encodage de base par le nouveau (ici latin1 par utf-8)

sudo sed -e 's/SET NAMES latin1/SET NAMES utf8/g' -i dump_utf8.sql
sudo sed -e 's/CHARSET=latin1/CHARSET=utf8 COLLATE=utf8_unicode_ci/g' -i dump_utf8.sql
sudo sed -e 's/COLLATE utf8_bin/COLLATE utf8_unicode_ci/g' -i dump_utf8.sql

4. Changer l'encodage de la base

Vous pouvez ensuite soit recréer la base soit la modifier dans MySQL

drop database DATABASE_NAME;
create database DATABASE_NAME default character set utf8 default collate utf8_unicode_ci;
grant all on DATABASE_NAME.* to DATABASE_USER;
ou
alter database DATABASE_NAME character set utf8 collate utf8_unicode_ci;
alter table TABLE_NAME character set utf8;

5. Changer l'encodage de la base par défaut

Ouvrez le fichier de configuration de MySQL et ajoutez ou modifiez (si ils existent déjà) les paramètres suivants puis redémarrez MySQL

vi /etc/mysql/my.cnf
[client]
default-character-set=utf8

[mysql]
default-character-set=utf8

[mysqld]
collation-server = utf8_unicode_ci
init-connect='SET NAMES utf8'
character-set-server = utf8

/etc/init.d/mysql restart

6. Importez les données

mysql -h localhost --default-character-set=utf8 -u DATABASE_USER -p DATABASE_NAME < dump_utf8.sql


Sources
Convertir latin1 en utf8
MySQL Alter charset


Version
Debian version : 6.0.10
MySQL version : 14.14 Distrib 5.1.73, for debian-linux-gnu (x86_64) using readline 6.1

Synology DS415+ : Changer le répertoire par défaut de Photo station

11 mai 2016 - Aucun commentaire

J'ai récemment acheté un NAS Synology DS415+ afin d'y stocker ma musique, mes photos et mes vidéos, attendez-vous donc à plusieurs posts dédiés à cette plateforme, je suis en plein paramétrage.

Première déconvenue : L'application Photo station ne permet pas de paramétrer l'endroit où sont stocké les photos, une hérésie !
Par défaut il regarde dans /volume1/photo
On doit surement pouvoir bidouiller des fichiers de configuration utilisés par l'appli pour modifier ça, mais la solution simple (mais temporaire ?) que j'ai retenu était de faire un lien symbolique vers mes photos.

Tout d'abord arrêtez le processus, pour cela rendez-vous, depuis l'interface web, dans le Centre de paquet, sélectionnez Photo station, bouton Action, Stop.


Ensuite, depuis le panneau de configuration, Dossiers partagés, supprimez le répertoire "photo".


Accédez au NAS en SSH (depuis Putty par exemple) et rendez vous dans le volume où vous souhaitez stocker vos photo, par exemple volume1, puis créez un lien symbolique pointant sur votre dossier actuel.
cd /volume1
sudo ln -s /volume1/DOSSIER_PHOTO photo
sudo chmod -R 777 /volume1/DOSSIER_PHOTO
Important, mettez les droits à 777 sur la racine du dossier de photo, se contenter de les mettre sur le lien symbolique n'aura pas d'effet.


Sources
https://forum.synology.com/enu/viewtopic.php?t=68474


Version
Synology DS415+
DSM 6.0-7321 Update 6

Forcer un mode d'affichage (portrait, paysage) sur Android

31 mars 2016 - Aucun commentaire

La version de CyanogenMOD que j'ai installé sur ma tablette Samsung Galaxy Tab Pro 12 est géniale mais elle souffre d'un défaut : la rotation automatique de l'écran ne fonctionne pas.
C'est un bug connu et je crois qu'ils ne l'ont toujours pas réglé.

Pour palier au problème il existe la petite application Set Orientation

Elle ne demande aucune permission en particulier et fonctionne a merveille.
Le très léger défaut que je lui trouve c'est qu'elle ne garde pas en mémoire les dernières orientations utilisées, il faut à chaque fois scroller pour trouver la bonne.

Activer VT-x/AMD-V pour installer un OS 64 bits dans une VM

09 mars 2016 - Aucun commentaire

En voulant installer une Debian x64 dans une machine virtuelle depuis Windows 7 j'ai obtenu ce message d'erreur : VT-X/AMD-V hardware acceleration has been enabled, but is not operational. Please ensure that you have enabled VT-x/AMD-V properly in the BIOS of your host computer


BIOS

Il faut donc aller dans le BIOS pour activer la fonctionnalité correspondante.
Je possède une carte mère Asus P8Z77-Deluxe, le BIOS pourrait être différent chez vous si vous n'avez pas le même modèle.

1. Rebootez et entrez dans le BIOS.
2. Passez en mode avancé.


3. Entrez dans l'onglet Advanced
4. Allez sur CPU Configuration



5. Activez Intel Virtualization Technology



6. Sauvegarder, quittez et, très important, éteignez complètement votre ordinateur !
Un simple reboot ne prendra pas en compte l'activation de la virtualisation.

Pendant mes pérégrinations sur internet j'ai noté que deux autres choses pouvaient empêcher la machine virtuelle d'utiliser l'accélération matérielle : Hyper-v ou l'antivirus.

Hyper-v

Hyper-v est une fonctionnalité Windows qui empêche les processus d'utiliser l'accélération matérielle.
Pour le supprimer,
1. Ouvrez le panneau de configuration
2. Allez dans Programs and Features
3. Cliquez sur Turn Windows features on or off
4. Décochez Hyper-v si vous le trouvez (moi je ne l'avais pas)


Antivirus

Avast peut éventuellement empêcher d'utiliser l'accélération matérielle, cherchez dans les paramètres et décochez "Enable Hardware-assisted Virtualization" ("activer l'assistance a la virtualisation").


Sources
BIOS
Hyper-v
Hard reboot
Avast


Versions
Carte mère : Asus P8Z77-Deluxe
Bios : 2.10.1208
Oracle VM Virtualbox : 4.2.10
Windows 7 x64 - SP1

Jouer avec des manettes PS3 sur Windows

04 mars 2016 - 2 commentaires

1. Installer les drivers Xbox en 1er, DS3 Tool va se servir de ceux-ci. (via Microsoft, via pumbaa.ch)
File: Xbox360_64Eng.exe
   CRC-32: 04f0468f
   MD4: f6fbefc0e1c7e3032b6b5338f6613f03
   MD5: 4c7fbad5bbebc0d3807129092a1de4b9
   SHA-1: 00f7246437c53f3aba5516ac3fc572181c24c666

2. Installer DS3 Tool (via xinputer, via pumbaa.ch)
File: MotioninJoy_071001_signed.exe
   CRC-32: 1e840493
   MD4: 6b14396f91e0a087b6c3cf6f39f1fe8e
   MD5: 5ae1bf5713cf1f0d682561d34779214d
   SHA-1: 2d1c95e94b86e2a465ce6e39858ab612dc2fafd5

3. Lancer DS3 Tool

4. Brancher la (les) manette(s) avec le câble USB (je ferai un 2ème tuto avec bluetooth si j'y arrive)

5. Dans Driver Manager, sélectionner les manettes et cliquer sur Load drivers.
Windows va mettre un message d'alerte qu'il faut accepter.
Après un petit temps d'attente vous devriez voir un Vu s'afficher à droite.


6. Dans Profiles, sélectionner une manette et cliquer sur Enable pour que joysticks fonctionnent. Recommencer pour chaque manette.


Notez qu'une fois l'installation terminée il ne semble pas requis que DS3 Tool soit lancé pour que les manettes fonctionnent.


Sources
JV #17, page 72


Versions
Windows 7 x64 - SP1 ENG
DS3 Tool 0.7.1001
Driver XBox : Xbox 360 Accessories Software 1.2

Créer un zip en ligne de commande

15 février 2016 - Aucun commentaire

Je cherchais un moyen de créer un fichier zip sous Windows sans passer par un programme tiers (java, exe, python, ...).
Je pensais y arriver uniquement en batch mais en fait il faut faire quelques lignes de VB Script.

Le fichier batch :
@echo off

REM ----- Setup -----
set SRC_DIR=C:\Temp\FolderToZip\
set VBS_FILE=.\zipIt.vbs
set ARCHIVE_FOLDER=c:\Temp\
mkdir %ARCHIVE_FOLDER% 2> nul
set DATE_TIME=%DATE:~-4%.%DATE:~3,2%.%DATE:~0,2%-%TIME:~0,2%.%TIME:~3,2%.%TIME:~6,2%
set ZIP_FILE="%ARCHIVE_FOLDER%folderZipped_%DATE_TIME%.zip"
REM ------ end -------

REM ----- Execute VBS file (creating ZIP file) -----
CScript %VBS_FILE% %SRC_DIR% %ZIP_FILE%

Le fichier VBS : zipIt.vbs
REM Récupération des arguments
Set args = WScript.Arguments
srcFolder = args(0) REM Dossier source, à zipper
zipFilePath = args(1) REM Chemin du fichier zip à créer

REM Récupération des chemins absolus
set fso = CreateObject("Scripting.FileSystemObject")
srcFolder = fso.GetAbsolutePathName(srcFolder)
zipFilePath = fso.GetAbsolutePathName(zipFilePath)

REM Magie noire...
REM Création du fichier zip (vide)
CreateObject("Scripting.FileSystemObject").CreateTextFile(zipFilePath, True).Write "PK" & Chr(5) & Chr(6) & String(18, vbNullChar)

Set objShell = CreateObject("Shell.Application")
Set zip = objShell.NameSpace(zipFilePath)
Set source = objShell.NameSpace(srcFolder)

REM REMplissage du fichier zip
REM Malheureusement cette opération est non-bloquante
zip.CopyHere source.Items

REM il faut donc attendre jusqu'à qu'elle soit terminée.
REM Pour cela on boucle tant que le nombre de fichiers dans le zip n'est pas égal au nombre de fichiers dans le dossier source.
REM http://stackoverflow.com/questions/149956/how-to-determine-when-copy-finishes-in-vbscript
Do Until zip.Items.Count = source.Items.Count
    WScript.Sleep 100
    WScript.Echo "Copie en cours : " & zip.Items.Count & "/" & source.Items.Count
Loop

Pour une raison que j'ignore le script échoue si la source contient, quelque part dans sa hiérarchie, un dossier vide.
J'obtiens le message suivant :
Windows was unable to add one or more empty directories to the Compressed (zipped) Folder.

Si quelqu'un peut m'expliquer pourquoi ou comment y remédier, ça serait sympa.

Si vous voulez un seul fichier qui fasse tout ça il est possible de créer le fichier VBS à la volée, l'exécuter puis le détruire :

@echo off

REM ----- Setup -----
set SRC_DIR=C:\Temp\FolderToZip\
set VBS_FILE=.\zipIt.vbs
set ARCHIVE_FOLDER=c:\Temp\
mkdir %ARCHIVE_FOLDER% 2> nul
set DATE_TIME=%DATE:~-4%.%DATE:~3,2%.%DATE:~0,2%-%TIME:~0,2%.%TIME:~3,2%.%TIME:~6,2%
set ZIP_FILE="%ARCHIVE_FOLDER%folderZipped_%DATE_TIME%.zip"
REM ------ end -------

REM ------ Création du fichier VBS à chaud -----
REM Récupération des arguments
echo Set args = WScript.Arguments>%VBS_FILE%
echo srcFolder = args(0)>>%VBS_FILE% REM Dossier source, à zipper
echo zipFilePath = args(1)>>%VBS_FILE% REM Chemin du fichier zip à créer

REM Récupération des chemins absolus
echo set fso = CreateObject("Scripting.FileSystemObject")>>%VBS_FILE%
echo srcFolder = fso.GetAbsolutePathName(srcFolder)>>%VBS_FILE%
echo zipFilePath = fso.GetAbsolutePathName(zipFilePath)>>%VBS_FILE%

REM Magie noire...
REM Création du fichier zip (vide)
echo CreateObject("Scripting.FileSystemObject").CreateTextFile(zipFilePath, True).Write "PK" ^& Chr(5) ^& Chr(6) ^& String(18, vbNullChar)>>%VBS_FILE%

echo Set objShell = CreateObject("Shell.Application")>>%VBS_FILE%
echo Set zip = objShell.NameSpace(zipFilePath)>>%VBS_FILE%
echo Set source = objShell.NameSpace(srcFolder)>>%VBS_FILE%

REM REMplissage du fichier zip
REM Malheureusement cette opération est non-bloquante
echo zip.CopyHere source.Items>>%VBS_FILE%

REM il faut donc attendre jusqu'à qu'elle soit terminée.
REM Pour cela on boucle tant que le nombre de fichiers dans le zip n'est pas égal au nombre de fichiers dans le dossier source.
REM http://stackoverflow.com/questions/149956/how-to-determine-when-copy-finishes-in-vbscript
echo Do Until zip.Items.Count = source.Items.Count>>%VBS_FILE%
echo 	WScript.Sleep 100>>%VBS_FILE%
echo 	WScript.Echo "Copie en cours : " ^& zip.Items.Count ^& "/" ^& source.Items.Count>>%VBS_FILE%
echo Loop>>%VBS_FILE%
REM ------ end -------

REM ----- Execute VBS file (creating ZIP file) -----
CScript %VBS_FILE% %SRC_DIR% %ZIP_FILE%

REM ----- Suppression du fichier VBS ------
del %VBS_FILE%

Notez le caractère d'échappement "^" utilisé pour échapper les "&" à écrire dans le fichier.


Source
Création du zip : http://superuser.com/questions/110991/can-you-zip-a-file-from-the-command-prompt-using-only-windows-built-in-capabili
Attendre que la création du zip se termine : http://stackoverflow.com/questions/149956/how-to-determine-when-copy-finishes-in-vbscript

Publié dans :

Macro VBA - Fractionner une feuille en plusieurs feuilles

16 décembre 2015 - 2 commentaires

Ça ne va pas arriver souvent, vu que je prône l'utilisation de logiciels libres, mais voici un script VBA pour Excel que j'ai du faire au boulot.

La tâche : j'ai une feuille contenant un tas de rapport de ventes, les uns à la suite des autres, séparés par une ligne vide à chaque fois.
Il fallait splitter chaque rapport dans une nouvelle feuille.

Vu que j'ai du écrire 3 lignes de VBA dans ma vie, il y a plus de 15 ans, j'étais passablement rouillé.
Tellement rouillé qu'en fait j'ai juste été pomper des bouts de codes à droite à gauche pour les mélanger ensemble et espérer que ça marche.
Et ça marche !
Par contre pour le style, on repassera. J'ai tenté de nettoyer le code après coup mais il reste probablement des horreurs qui feront bondir les puristes.

Fichier source


Résultat final


Algorithme en 2 mots
Je duplique la feuille de base, je cherche la 1ère ligne vide, je copie la plage jusqu'à la ligne vide dans une nouvelle feuille au nom du client, je supprime la plage sélectionnée et je recommence.
A la fin je supprime la feuille dupliquée.

Code source
Sub split()
    Dim firstPage As Worksheet
    Set firstPage = Sheets(1) ' La page de référence, à parser et spliter
    
    ' https://msdn.microsoft.com/en-us/library/office/ff837784.aspx
    firstPage.Copy After:=firstPage ' On copie la page de base
    
    Dim copyPage As Worksheet
    Set copyPage = Sheets(2) ' La page copiée, qu'on peut modifier
    copyPage.Name = "temp"
    
    Dim nextBlankRow As Long
    nextBlankRow = firstBlankRow(copyPage)

    While (nextBlankRow > 0)
        Dim clientName As String
        clientName = findClientName(copyPage.Range("A:A"))
        
        Sheets.Add After:=Sheets(Sheets.Count) ' crée une nouvelle feuille et l'ajoute à la fin du classeur
        
        Dim newPage As Worksheet
        Set newPage = Sheets(Sheets.Count) ' On récupère la feuille nouvellement créée
        newPage.Name = clientName ' renome la nouvelle feuille
    
        Dim nbCol As Long
        nbCol = copyPage.UsedRange.Columns.Count
        
        Dim currentRange As Range
        Set currentRange = copyPage.Range("A1", copyPage.Cells(nextBlankRow, nbCol))
        
        ' http://stackoverflow.com/questions/21648122/excel-vba-copy-range-and-paste-values-in-another-sheets-specific-range
        currentRange.Copy ' Copie des valeurs de la 1ère page
        newPage.Range("A1").PasteSpecial xlPasteValues ' on colle dans la nouvelle feuille
        newPage.Columns.AutoFit ' ajuster la taille des colones : http://www.extendoffice.com/documents/excel/1174-excel-split-data-into-multiple-worksheets-based-on-column.html
        newPage.Range("A1").Select ' lâche la sélection
        
        currentRange.Delete ' Supprime la plage pour pouvoir recommencer avec la suivante
        nextBlankRow = firstBlankRow(copyPage)
    Wend
    
    Application.DisplayAlerts = False
    copyPage.Delete
    Application.DisplayAlerts = True
    
    firstPage.Select
    firstPage.Range("A1").Select
End Sub

Function findClientName(fullCol As Range) As String
    For Each cell In fullCol.Cells
        If cell.Value <> "" Then
            findClientName = cell.Value
            Exit For
        End If
    Next
End Function

Function firstBlankRow(ws As Worksheet) As Long
'returns the row # of the row after the last used row
'Or the first row with no data in it
'http://stackoverflow.com/questions/12497804/finding-first-blank-row-then-writing-to-it

    Dim rngSearch As Range, cel As Range
    With ws
        Set rngSearch = .UsedRange.Columns(1).Find("") '-> does blank exist in the first column of usedRange
        If Not rngSearch Is Nothing Then
            Set rngSearch = .UsedRange.Columns(1).SpecialCells(xlCellTypeBlanks)
            For Each cel In rngSearch
                If Application.WorksheetFunction.CountA(cel.EntireRow) = 0 Then
                    firstBlankRow = cel.Row
                    Exit For
                End If
            Next
        Else '-> no blanks in first column of used range
            If Application.WorksheetFunction.CountA(Cells(.Rows.Count, 1).EntireRow) = 0 Then '-> is the last row of the sheet blank?
                '-> yeap!, then no blank rows!
                firstBlankRow = -1
                'MsgBox "Whoa! All rows in sheet are used. No blank rows exist!"
            Else
                '-> okay, blank row exists
                firstBlankRow = .UsedRange.SpecialCells(xlCellTypeBlanks).Row + 1
            End If
        End If
    End With
End Function


Le fichier qui contient tout
Fichier

Créer une macro VBA
Menu Outils, Macro, Visual Basic Editor

Lancer une macro VBA
Menu Outils, Macro, Macros, sélectionner Feuil1.split (nom de la feuille original + nom de la méthode Sub)

Notez que, par défaut, si vous ouvrez un fichier avec une macro le programme vous avertira des problèmes de sécurité et les désactivera.
Pour les autoriser, rendez-vous dans le menu Outils, Options, onglet Sécurité, bouton Sécurité des macros et sélectionnez Moyen ou Faible.



Sources
Copier une plage de valeurs
Trouver la prochaine ligne vide
Ajuster la taille des colones
Dupliquer une feuille


Versions
Microsoft Excel 2002 (10.2614.2625)
Microsoft Visual Basic 6.3

Formater un Sony Xperia Z3 Compact

18 août 2015 - 2 commentaires

Il existe plusieurs moyens de formater (flasher) un smartphone, mais quand l'écran est intégralement détruit et qu'on ne voit rien c'est tout de suite plus dur.
Voici la méthode que j'ai utilisé.


Extinction du téléphone

1) Premièrement il faut éteindre le téléphone.
Comme une pression sur le bouton Power ne suffit pas et qu'on ne peut plus retirer la batterie (merci Sony, vous baissez énormément dans mon estime) il faut passer par le petit bouton de hard-reset planqué à côté de la carte SIM.

Source : sony-xperia.mobi

Ne branchez toujours pas le téléphone au PC.

Installation de Flashtool

2) Installez Flashtool 0.9.19.0.
CRC-32: 61e62c1a
   MD4: 7ce2c4ce96c12d3e1659b5a722fe41b1
   MD5: ed374601e368b99aab51a3b94c2bf1ca
 SHA-1: 795c21b9ee81aff747ef6b9324b1054fa55a8056

3) Dans le répertoire d'installation de Flashtool ouvrez le dossier "drivers" et lancez "Flashtool-drivers.exe" pour installer les drivers du téléphone.
Cochez "Flashmode Drivers", "Fastboot Drivers" et "Xperia Z3 Compact Device Driver"


4) Redémarrez le PC.

Flashage

5) Téléchargez la ROM de base (Stock ROM) : D5803_23.0.A.2.93_Generique_FR.ftf ou une plus récente.
CRC-32: c48acb43
   MD4: e41817ce4abf68029e320c272e415d82
   MD5: 74370beacf0cb8676f7efe654cc6bec9
 SHA-1: 2f1216318ea8dfa8d6df5ee929f1e50f541c301d

6) Copiez-la dans le répertoire "C:\Users\[VOTRE_NOM]\.flashTool\firmwares"

7) Lancez "FlashTool.exe" ("FlashTool64.exe" sur système 64 bits), attendez 20 secondes que le programme s'initialise et cliquez sur l'éclair "Flash Device".


Sélectionnez Flashmode et cliquez sur Ok.
Si vous voulez effacer toutes les données présentes sur le téléphone cochez les 3 cases "APPS_LOG", "CACHE" et "USERDATA".


8) Cliquez sur
Flash
et attendez une bonne minute.

9) Une fenêtre va apparaitre indiquant les instructions à suivre pour démarrer l'installation.
Pressez sur le bouton de Volume Bas et, tout en restant pressé, reliez le téléphone au PC via un câble micro-USB.


L'installation devrait démarrer toute seule et durer plusieurs minutes.


Versions
Sony Xperia Z3 Compact (z3c) - D5803
Stock ROM : D5803_23.0.A.2.93_Generique_FR
Flashtool 0.9.19.0-windows
Windows 7 Pro 64 bits - SP1


Sources
http://xperiafirmware.com/8-firmware/116-xperia-flashtool
http://forum.xda-developers.com/z3-compact/general/list-stock-firmwares-d5803-d5833-t2906706
http://www.phonandroid.com/forum/installer-un-firmware-officiel-sur-sony-xperia-z3-compact-d5803-t100583.html

Encodage de la fenêtre de Commande de Windows

12 août 2015 - 2 commentaires

L'invite de commande (cmd.exe) de Windows utilise un encodage pourri particulier.
Il s'agit de OEM 850.

Vous pouvez le vérifier en tapant la commande
chcp



Si vous écrivez des accents dans un fichier texte et que vous l'ouvrez vous verrez ça.

"Tempête à Hawaï" devient "Tempˆte … Hawa‹" en ANSI et "Tempɴe Š Hawaˠ" en UTF-8.

Si vous souhaitez le rendre compatible avec le reste du Monde :
  • Sélectionnez le bon encodage (Dans Notepad++ via le menu Encodage -> Codage de caractère -> Langues d'Europe occidentale -> OEM 850)
  • Convertissez en UTF-8 (menu Encodage -> Convertir en UTF-8)
  • Et sauvez



Versions
Windows 7 Pro 64 bits - SP1
Notedpad++ v6.6.7


Sources
What encoding/code page is cmd.exe using
Convert UTF-16 unicode characters to UTF-8 in java