# Convert ASCII to byte an vice versa

**URL:** <https://www.ruby-forum.com/t/convert-ascii-to-byte-an-vice-versa/109334>\
**Category:** Ruby\
**Created:** [July 13, 2007, 3:07pm UTC](https://www.ruby-forum.com/t/convert-ascii-to-byte-an-vice-versa/109334 "2007-07-13T15:07:30Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![alex-osu3](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/13edae/32.png) [@alex-osu3](https://www.ruby-forum.com/u/alex-osu3)\
**Post date:** [July 13, 2007, 3:07pm UTC](https://www.ruby-forum.com/t/convert-ascii-to-byte-an-vice-versa/109334/1 "2007-07-13T15:07:30Z")

</div>

Hi all,

I have a small script as follows. I wonder how I can  
change 65 66 67 back to ABC.

Thanks,

Li

C:\Documents and Settings\chen73\>irb  
irb(main):001:0\> str=“ABC”  
=\> “ABC”  
irb(main):002:0\> str.each\_byte{|b|puts b}  
65  
66  
67  
=\> “ABC”  
irb(main):003:0\>

---

<div class="post-metadata">

**Author:** ![alex-osu3](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/13edae/32.png) [@alex-osu3](https://www.ruby-forum.com/u/alex-osu3)\
**Post date:** [July 13, 2007, 3:13pm UTC](https://www.ruby-forum.com/t/convert-ascii-to-byte-an-vice-versa/109334/2 "2007-07-13T15:13:31Z")

</div>

On 7/13/07, chen li [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> Hi all,
> 
> I have a small script as follows. I wonder how I can  
> change 65 66 67 back to ABC.

Try the Integer#chr method, from the docs:

int.chr =\> string  
[http://www.ruby-doc.org/core/classes/Integer.src/M001163.html](http://www.ruby-doc.org/core/classes/Integer.src/M001163.html)

Returns a string containing the ASCII character represented by the  
receiver’s value.

65.chr #=\> “A”  
?a.chr #=\> “a”  
230.chr #=\> “\346”

---

<div class="post-metadata">

**Author:** ![alex-osu3](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/13edae/32.png) [@alex-osu3](https://www.ruby-forum.com/u/alex-osu3)\
**Post date:** [July 13, 2007, 3:21pm UTC](https://www.ruby-forum.com/t/convert-ascii-to-byte-an-vice-versa/109334/3 "2007-07-13T15:21:32Z")

</div>

On Jul 13, 9:05 am, chen li [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> irb(main):001:0\> str=“ABC”  
> =\> “ABC”  
> irb(main):002:0\> str.each\_byte{|b|puts b}  
> 65  
> 66  
> 67  
> =\> “ABC”  
> irb(main):003:0\>
> 
> * * *
> 
> Choose the right car based on your needs. Check out Yahoo! Autos new Car Finder tool.[http://autos.yahoo.com/carfinder/](http://autos.yahoo.com/carfinder/)

# [65,66,67].collect{|b| b.chr}.join

=\> “ABC”

# [65,66,67].pack(“C\*”)

=\> “ABC”

Val

[http://revolutiononrails.blogspot.com/](http://revolutiononrails.blogspot.com/)

---

<div class="post-metadata">

**Author:** ![alex-osu3](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/13edae/32.png) [@alex-osu3](https://www.ruby-forum.com/u/alex-osu3)\
**Post date:** [July 13, 2007, 3:26pm UTC](https://www.ruby-forum.com/t/convert-ascii-to-byte-an-vice-versa/109334/4 "2007-07-13T15:26:33Z")

</div>

On Jul 13, 9:05 am, chen li [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> Hi all,
> 
> I have a small script as follows. I wonder how I can  
> change 65 66 67 back to ABC.
> 
> C:\Documents and Settings\chen73\>irb  
> irb(main):001:0\> str=“ABC”  
> =\> “ABC”  
> irb(main):002:0\> str.each\_byte{|b|puts b}

irb(main):003:0\> str.each\_byte{|b|puts b.chr}  
A  
B  
C  
=\> “ABC”

---

<div class="post-metadata">

**Author:** ![alex-osu3](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/13edae/32.png) [@alex-osu3](https://www.ruby-forum.com/u/alex-osu3)\
**Post date:** [July 13, 2007, 3:24pm UTC](https://www.ruby-forum.com/t/convert-ascii-to-byte-an-vice-versa/109334/5 "2007-07-13T15:24:33Z")

</div>

chen li [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) writes:

> Hi all,
> 
> I have a small script as follows. I wonder how I can  
> change 65 66 67 back to ABC.

In addition to manually using Integer.chr, you may find Array.pack  
useful:

esau:~$ irb  
irb(main):001:0\> ‘asdf’.unpack(‘c\*’)  
=\> [97, 115, 100, 102]  
irb(main):002:0\> [97, 115, 100, 102].pack(‘c\*’)  
=\> “asdf”
