Ruby - How to convert characters to ASCII decimal (byte) values

Problem: You have a character, or a string of characters, and you want to use a Ruby script to convert each character to its ASCII decimal (byte) value.

Solution

I just ran into this problem while working on a script to remove binary/garbage characters from a Unix text file. In short, all you have to do to convert a character in Ruby to its equivalent decimal ASCII code is use the ? operator in front of it, like this:

puts ?a

That line of code prints the number 97, the decimal value of the character a.

A little more

Here's a little more information, in the form of some slightly-commented output from a Ruby irb session:

>> ?A
=> 65

>> ?a
=> 97

>> ?~
=> 126

# a space
>> ?\s
=> 32

# tab
>> ?\t
=> 9

# newline
>> ?\n
=> 10

# carriage-return
>> ?\r
=> 13

 

Add new comment

The content of this field is kept private and will not be shown publicly.

Anonymous format

  • Allowed HTML tags: <em> <strong> <cite> <code> <ul type> <ol start type> <li> <pre>
  • Lines and paragraphs break automatically.
By submitting this form, you accept the Mollom privacy policy.