Comment écrire un seul caractère 0x0A dans STDOUT en Ruby sous Windows?

Comment écrire un seul caractère 0x0A dans STDOUT en Ruby sous Windows. Juste un, sans 0x0D.

@EDIT: Merci à tous! Je connaissais le concept de mode binary / texte, mais je ne savais pas comment gérer cet interprète Ruby. La solution consiste à utiliser STDOUT.binmode .

Il y a une question ouverte: comment faire pour que STDOUT revienne en mode texte en utilisant un code indépendant de la plate-forme?

Cela est dû à la “nouvelle ligne virtuelle”. Au niveau de la couche IO (Ruby), cette fonctionnalité est responsable du mappage “\ n” (0x0A, LF) vers / depuis la définition des systèmes d’exploitation d’une nouvelle ligne . Windows mappe “\ n” sur CR + LF (alors que “\ n” est mappé tel quel sur LF dans les systèmes de type Unix).

Utilisez ios.binmode pour mettre le stream en mode binary qui désactive le mode “virtual newline”. Ceci est également très important pour traiter les stream binarys tels que les images 😉

Heureux codage