# Ucs-2

**URL:** <https://www.ruby-forum.com/t/ucs-2/100780>\
**Category:** Ruby\
**Created:** [August 1, 2006, 12:49am UTC](https://www.ruby-forum.com/t/ucs-2/100780 "2006-08-01T00:49:09Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![nexflo](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/n/58956e/32.png) [@nexflo](https://www.ruby-forum.com/u/nexflo)\
**Post date:** [August 1, 2006, 12:49am UTC](https://www.ruby-forum.com/t/ucs-2/100780/1 "2006-08-01T00:49:09Z")

</div>

Hi!

Is there any way to decode a UCS-2 string with ruby?

Thanks!

Ciao!  
Florian

---

<div class="post-metadata">

**Author:** ![nexflo](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/n/58956e/32.png) [@nexflo](https://www.ruby-forum.com/u/nexflo)\
**Post date:** [August 1, 2006, 4:36am UTC](https://www.ruby-forum.com/t/ucs-2/100780/2 "2006-08-01T04:36:32Z")

</div>

On 8/1/06, Florian W. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> Hi!
> 
> Is there any way to decode a UCS-2 string with ruby?

Decode to what? You’re probably looking for iconv. There’s a Ruby  
binding for that in the standard library, and it should be able to  
convert your UCS-2 to almost anything. If you just want to convert it  
to UTF-8, I believe the pack/unpack methods for strings and arrays  
ought to be able to do the trick.

---

<div class="post-metadata">

**Author:** ![nexflo](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/n/58956e/32.png) [@nexflo](https://www.ruby-forum.com/u/nexflo)\
**Post date:** [August 1, 2006, 6:47am UTC](https://www.ruby-forum.com/t/ucs-2/100780/3 "2006-08-01T06:47:34Z")

</div>

Florian W. wrote:

> Hi!
> 
> Is there any way to decode a UCS-2 string with ruby?

irb\> require ‘iconv’  
=\> true  
irb\> Iconv.iconv(“UTF-8”, “UCS-2”, “\0a\0b”)  
=\> [“ab”]

Cheers,  
Dave

---

<div class="post-metadata">

**Author:** ![nexflo](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/n/58956e/32.png) [@nexflo](https://www.ruby-forum.com/u/nexflo)\
**Post date:** [August 1, 2006, 10:39am UTC](https://www.ruby-forum.com/t/ucs-2/100780/4 "2006-08-01T10:39:15Z")

</div>

On 01/08/06, removed\_email\_address@domain.invalid [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> Florian W. wrote:
> 
> > Hi!
> > 
> > Is there any way to decode a UCS-2 string with ruby?
> 
> irb\> require ‘iconv’  
> =\> true  
> irb\> Iconv.iconv(“UTF-8”, “UCS-2”, “\0a\0b”)  
> =\> [“ab”]

It’s probably worth specifying endianness for portability:

Iconv.iconv(“UTF-8”, “UCS-2BE”, “\0a\0b”)

However, are you sure you want UCS-2, and not its superset UTF-16? In  
my experience, specifying UCS-2 instead of UTF-16 is almost always a  
bug.

Paul.

---

<div class="post-metadata">

**Author:** ![nexflo](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/n/58956e/32.png) [@nexflo](https://www.ruby-forum.com/u/nexflo)\
**Post date:** [August 1, 2006, 8:33pm UTC](https://www.ruby-forum.com/t/ucs-2/100780/5 "2006-08-01T20:33:11Z")

</div>

Paul B. wrote:

> However, are you sure you want UCS-2, and not its superset UTF-16? In  
> my experience, specifying UCS-2 instead of UTF-16 is almost always a  
> bug.  
> In fact, if you want to be pedantic (and when it comes to character  
> encoding, pedantic is good) UCS-2 doesn’t actually exist any more, last  
> time I checked. Paul is right, you really mean UTF-16. -Tim
