Encodage lors de l'accès à Windows + Ruby

Ceci est le premier post

Je pense que c'est une toute petite histoire, mais j'étais perdu pendant longtemps à cause d'informations inattendues. J'aimerais participer petit à petit à la qiita depuis un tel endroit.

Ce qui m'inquiétait

Un programme qui affiche ce que vous obtenez dans Windows 10 + Ruby 2.7.0.

miss.rb


str = gets.chomp
puts str

C'est tout, mais quand je suis entré en japonais avec des puts, les caractères étaient déformés. J'utilise habituellement VS Code, et je pensais qu'il était compatible avec la console et Ruby, mais cela ne fonctionnait pas à l'invite de commande. J'étais en train de déconner avec l'encodage du côté Ruby, et bien que recherché sur Google, j'étais confus par l'ancienne notation (obsolète) de ruby Ks, mais à la fin, elle était affichée en toute sécurité lorsque j'ai fait la section suivante.

Solution

correct.rb


STDIN.set_encoding "Windows-31J"
str = gets.chomp
puts str.encode("Windows-31J", invalid: :replace, replace: '')

Après tout,

Cela (je pense).

Cependant, ce n'est pas parfait, et si gets contient des caractères pleine largeur, les sauts de ligne ne seront pas bien reconnus et vous finirez par appuyer deux fois sur la touche Entrée. Je ne connais pas cette solution de contournement pour le moment. Eh bien, ce n'est pas un comportement qui me tient à cœur, alors pour l'instant j'essaierai de survivre avec ça.

Recommended Posts

Encodage lors de l'accès à Windows + Ruby
Changer le codage Java dans Windows
Soyez prudent lorsque vous omettez le retour dans Ruby
Ne pas revenir lors de la prise de notes en Ruby
Lourd en rubis! ??
Premiers pas avec Ruby
Triangle de sortie en Ruby
Tutoriel Ruby on Rails Remarques gênantes lors de l'exécution sous Windows
Types de variables dans ruby
Popcount rapide en Ruby
Difficultés à créer un environnement Ruby on Rails (Windows 10) (SQLite3)
Résoudre l'erreur CreateProcess = 206 lors de l'exécution de Java dans un environnement Windows
Remarques sur le code de caractère lors de la migration de Windows vers Mac
ABC177-Résoudre E avec Ruby
Valider les jetons JWT dans Ruby
Écrire l'héritage de classe dans Ruby
Mettre à jour Ruby dans l'environnement Unicorn
Entiers qui sont unifiés en entiers dans Ruby 2.4
[Ruby] Gestion des exceptions dans les fonctions
Utilisez des variables ruby en javascript.
Multiplication dans un tableau Ruby
À propos des expressions régulières dans Ruby
Ruby ① Création d'un environnement Windows
Premiers pas avec les modules Ruby
NCk mod p dans Ruby
Le point d'arrêt ne fonctionne pas lors de l'exécution de Rails Minitest dans Ruby Test Explorer