1.5. Reprezentowanie znaków niedrukowalnych

Problem

Należy stworzyć łańcuch zawierający znaki sterujące, znaki w kodzie UTF-8 lub dowolne znaki niedostępne z klawiatury.

Rozwiązanie

Ruby udostępnia kilka mechanizmów unikowych (escape) w celu reprezentowania znaków niedrukowalnych. W łańcuchach ujętych w cudzysłowy mechanizmy te umożliwiają reprezentowanie dowolnych znaków.

Dowolny znak można zakodować w łańcuchu, podając jego kod ósemkowy (octal) w formie \ooo lub kod szesnastkowy (hexadecimal) w formie \xhh.

octal = "\000\001\010\020"
octal.each_byte { |x| puts x }
# 0
# 1
# 8
# 16

hexadecimal = "\x00\x01\x10\x20"
hexadecimal.each_byte { |x| puts x }
# 0
# 1
# 16
# 32

W ten sposób umieszczać można w łańcuchach znaki, których nie można ...

Get Ruby. Receptury now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.