When working with text in Ruby, it's important to understand how to handle ASCII and Unicode characters. ASCII (American Standard Code for Information Interchange) is a character encoding standard that uses 7-bit binary numbers to represent characters. Unicode, on the other hand, is a character encoding standard that uses variable-length binary numbers to represent characters from different languages and scripts.
Ruby has built-in support for ASCII characters, which are represented by integers ranging from 0 to 127. You can convert ASCII characters to integers using the ord
method:
char = 'A'
ascii_value = char.ord
puts ascii_value
You can also convert integers to ASCII characters using the chr
method:
ascii_value = 65
char = ascii_value.chr
puts char
Unicode characters in Ruby are represented by integers ranging from 0 to 2^21-1. You can convert Unicode characters to integers using the ord
method:
char = '😊'
unicode_value = char.ord
puts unicode_value
You can also convert integers to Unicode characters using the chr
method:
unicode_value = 128522
char = unicode_value.chr(Encoding::UTF_8)
puts char
When working with Unicode characters in Ruby, it's important to specify the encoding. Ruby supports several encodings, such as UTF-8, UTF-16, and UTF-32. You can specify the encoding when converting integers to characters using the chr
method, as shown in the previous examples.
Strings in Ruby have an associated encoding, which determines how characters are represented internally. You can check the encoding of a string using the encoding
method:
str = 'Hello'
puts str.encoding
You can also force a string to a specific encoding using the force_encoding
method:
str = 'Hello'
str.force_encoding(Encoding::UTF_8)
puts str.encoding
When working with ASCII and Unicode characters in Ruby, it's important to be mindful of the encoding and to properly convert between integers and characters. By understanding how to handle ASCII and Unicode characters, you can ensure that your Ruby code works correctly with text from different languages and scripts.
© 2024 RailsInsights. All rights reserved.