# Problem with non-ascii characters in forms: "incompatible character encodings: UTF-8 and ASCII-8BIT

**URL:** <https://www.ruby-forum.com/t/problem-with-non-ascii-characters-in-forms-incompatible-character-encodings-utf-8-and-ascii-8bit/192519>\
**Category:** Rails\
**Created:** [August 1, 2010, 2:55am UTC](https://www.ruby-forum.com/t/problem-with-non-ascii-characters-in-forms-incompatible-character-encodings-utf-8-and-ascii-8bit/192519 "2010-08-01T02:55:20Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Rolf\_P](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/dec6dc/32.png) [@Rolf\_P](https://www.ruby-forum.com/u/Rolf_P)\
**Post date:** [August 1, 2010, 2:55am UTC](https://www.ruby-forum.com/t/problem-with-non-ascii-characters-in-forms-incompatible-character-encodings-utf-8-and-ascii-8bit/192519/1 "2010-08-01T02:55:20Z")

</div>

Hi

First off, I’m using Ruby 1.9.1p378 and Rails 2.3.8.

I was creating a minimal application to test handling of Norwegian  
special  
characters when I bumped into this strange problem…

I have a simple Car model with fields maker:string and model:string.  
For the controller I planned to just have an index action do all the  
work:  
class CarsController \< ApplicationController  
def index  
if request.post?  
@car = Car.new(params[:car])  
@car.save  
end  
@cars = Car.find(:all)  
end

# def create

# @car = Car.new(params[:car])

# @car.save

# redirect\_to :action =\> :index

# end

end

The corresponding view lists all car models and displays a form to  
support  
the addition of new car models:

# Cars
 \<% @cars.each do |car| %\> 

| maker | model |
| --- | --- |
| \<%= car.maker %\> | \<%= car.model %\> | \<% end %\> |

\<% form\_for(:car, :url =\> { :action =\> “index” }) do |f| %\>

\<%= f.label :maker %\> \<%= f.text\_field :maker %\>

\<%= f.label :model %\> \<%= f.text\_field :model %\>

\<%= f.submit 'Add' %\>

\<% end %\>

Now, this works fine… until I submit special characters in one of  
the  
fields.  
If I for example write “Dodge” and “BÃ¸rnout” in the form fields, I get  
an  
error like this:  
Encoding::CompatibilityError in Cars#index

Showing _app/views/cars/index.html.erb_ where line _#19_ raised:

incompatible character encodings: UTF-8 and ASCII-8BIT

Extracted source (around line _#19_):

16:

  
17: 

18: \<%= f.label :model %\>  
19: \<%= f.text\_field :model %\>  
20:

  
21: 

22: \<%= f.submit ‘Add’ %\>

But, the entry is added correctly to the database anyway, so if I just  
reload [http://localhost:3000/cars](http://localhost:3000/cars), I do see the new entry.  
OK, I thought… I’ve read quite a few places that there have been (and  
still are) various issues with support for Unicode in the different  
Ruby/Rails version combinations, so I figured that I just didn’t have  
the  
best combination for this.  
But then I temporarily built a new application by using generate  
scaffold,  
and it all works fine there.  
After some trying and failing I discovered that if I (in my original  
solution) changed the form\_for :url option to :action =\> “create” and  
added  
a create action in the controller file (commented out in the above  
controller source), it works with special characters and all.

So the only difference is that the form posts the data to the create  
action  
instead of the index action, and then it works.

I just don’t get it! :o/

Anyone has an explanation to offer?  
Would be much appreciated! :o)

Kind regards,  
Rolf

---

<div class="post-metadata">

**Author:** ![Rolf\_P](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/dec6dc/32.png) [@Rolf\_P](https://www.ruby-forum.com/u/Rolf_P)\
**Post date:** [August 1, 2010, 11:22am UTC](https://www.ruby-forum.com/t/problem-with-non-ascii-characters-in-forms-incompatible-character-encodings-utf-8-and-ascii-8bit/192519/2 "2010-08-01T11:22:21Z")

</div>

Hahaha!

Search the list, and you’ll notice that people have already fallen into  
this trap.

Wait 'til Rails 3 AND Ruby 1.9.2 get released to jump to Rails+Ruby1.9

Stick to Rails 2.3.8 and Ruby 1.8.7 until then.

---

<div class="post-metadata">

**Author:** ![Rolf\_P](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/dec6dc/32.png) [@Rolf\_P](https://www.ruby-forum.com/u/Rolf_P)\
**Post date:** [August 1, 2010, 6:28pm UTC](https://www.ruby-forum.com/t/problem-with-non-ascii-characters-in-forms-incompatible-character-encodings-utf-8-and-ascii-8bit/192519/3 "2010-08-01T18:28:49Z")

</div>

I did search the list, and I found people have similar problems with  
Ruby  
1.9.1, but not directly comparable to my issue.  
In my simple case it DOES work, as long as I use two controller actions  
instead of just the one…

Meanwhile… yes, do do stick to Ruby 1.8.7 until I know more :o)

Best regards,  
Rolf

Fernando P. wrote:

> Hahaha!
> 
> Search the list, and you’ll notice that people have already fallen into  
> this trap.
> 
> Wait 'til Rails 3 AND Ruby 1.9.2 get released to jump to Rails+Ruby1.9
> 
> Stick to Rails 2.3.8 and Ruby 1.8.7 until then.

---

<div class="post-metadata">

**Author:** ![Rolf\_P](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/dec6dc/32.png) [@Rolf\_P](https://www.ruby-forum.com/u/Rolf_P)\
**Post date:** [August 2, 2010, 9:47pm UTC](https://www.ruby-forum.com/t/problem-with-non-ascii-characters-in-forms-incompatible-character-encodings-utf-8-and-ascii-8bit/192519/4 "2010-08-02T21:47:57Z")

</div>

On Sun, Aug 1, 2010 at 9:27 AM, Rolf P. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> Fernando P. wrote:

I would recommend the following setup:

Ruby 1.9.2 RC2  
install =\> rvm install 1.9.2

Rails 3 RC  
install =\> gem install rails --pre

MySQL 2 Adapter  
install =\> gem install mysql2

Note: The MySQL 2 gem should resolve the MySQL encoding issues that  
people  
are seeing when using the regular MySQL gem and Ruby 1.9.2.

Next, if you’re planning to upgrade your application to Rails 3 and Ruby  
1.9.2, I would  
recommend that you begin the process now so that you can provide  
feedback to  
the  
Rails team as well as the Ruby gem/plugin authors.

Good luck and happy coding,

-Conrad
