# CGI.escape accepts only ISO-8859-1 input?

**URL:** <https://www.ruby-forum.com/t/cgi-escape-accepts-only-iso-8859-1-input/107928>\
**Category:** Ruby\
**Created:** [June 27, 2007, 5:21pm UTC](https://www.ruby-forum.com/t/cgi-escape-accepts-only-iso-8859-1-input/107928 "2007-06-27T17:21:17Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![martin](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/73ab20/32.png) [@martin](https://www.ruby-forum.com/u/martin)\
**Post date:** [June 27, 2007, 5:21pm UTC](https://www.ruby-forum.com/t/cgi-escape-accepts-only-iso-8859-1-input/107928/1 "2007-06-27T17:21:17Z")

</div>

Hi,

I’m not able to convert a string to ISO-8859-1.  
Could anyone please try to help me out here?

#!/usr/bin/ruby

message = ARGV[0]

# This doesn’t seem to work, what am I doing wrong?

Iconv.new(‘ISO-8859-1’, ‘UTF-8’).iconv(message)

encoded\_message = CGI.escape(message) rescue nil  
puts “Argument #{message} translates to #{encoded\_message}\n”

# Script stop.

If I set my terminal to UTF-8, I got this output:  
Argument input\_as-UTF-8\_ÆØÅ translates to input\_as-UTF-8\_  
%C3%86%C3%98%C3%85

Terminal set to ISO-8859-1:  
Argument input\_as-ISO-8859-1\_ÆØÅ translates to input\_as-ISO-8859-1\_  
%C6%D8%C5

Any help would be highly appreciated!

---

<div class="post-metadata">

**Author:** ![martin](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/73ab20/32.png) [@martin](https://www.ruby-forum.com/u/martin)\
**Post date:** [June 27, 2007, 5:26pm UTC](https://www.ruby-forum.com/t/cgi-escape-accepts-only-iso-8859-1-input/107928/2 "2007-06-27T17:26:18Z")

</div>

Forgot to paste what I have included in the script:

require ‘iconv’  
require ‘cgi’

–  
Martin

---

<div class="post-metadata">

**Author:** ![martin](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/73ab20/32.png) [@martin](https://www.ruby-forum.com/u/martin)\
**Post date:** [June 27, 2007, 5:51pm UTC](https://www.ruby-forum.com/t/cgi-escape-accepts-only-iso-8859-1-input/107928/3 "2007-06-27T17:51:22Z")

</div>

On 6/27/07, Martin [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> Iconv.new(‘ISO-8859-1’, ‘UTF-8’).iconv(message)  
> You’re discarding the return value. Perhaps you mean:

message = Iconv.new(‘ISO-8859-1’, ‘UTF-8’).iconv(message)
