Okay, c'est la locale que va utiliser
sed. Tu remarqueras qu'il s'attend à avoir une entrée en
utf8.
Donc quand tu lui files de
utf16 il est vénère.
Et je ne suis même pas certain qu'il gère bien
l'utf8, c'est à dire que quand tu lui dis de remplacer \001, peut être que dans ton implémentation de
sed il va bosser byte par byte au lieu de considérer caractère par caractère (qui peuvent parfois s'exprimer sur plusieurs bytes en
utf8 dès qu'il s'agit de caractères accentués par exemple).
Et ainsi remplacer un byte qui a en effet la valeur \001 mais qui ne correspond pas au caractère début de chapitre. En réalité ce byte pourrait composer un autre caractère compliqué qui est représenté par plusieurs bytes.
Bref, travaille toujours en
utf8, puis après (re)converti vers
utf16 ou garde en
utf8 selon ce que tu attends.
Si ça merde, oublie sed et regarde du côté de perl genre: