Rails 3.0.9 ArgumentError (redundant UTF-8 sequence):

Hi guys,
I have a simple controller

def gmap
@intentsearches = Intentsearch.all
logger.info @intentsearches
respond_to do |format|
format.html {render :gmap}
format.xml {render :xml => @intentsearches }
format.json { render :json => @intentsearches }
end
end

and want a json response, but i do get the following error

Completed 500 Internal Server Error in 107ms

ArgumentError (redundant UTF-8 sequence):
app/controllers/intentsearches_controller.rb:103:in gmap' app/controllers/intentsearches_controller.rb:100:ingmap’

Rendered
/usr/lib/ruby/gems/1.8/gems/actionpack-3.0.9/lib/action_dispatch/middleware/templates/rescues/_trace.erb
(1.0ms)
Rendered
/usr/lib/ruby/gems/1.8/gems/actionpack-3.0.9/lib/action_dispatch/middleware/templates/rescues/_request_and_response.erb
(36.4ms)
Rendered
/usr/lib/ruby/gems/1.8/gems/actionpack-3.0.9/lib/action_dispatch/middleware/templates/rescues/diagnostics.erb
within rescues/layout (40.7ms)

I am sending a http request with only one header param
Accept : application/json

Does anyone know about this issue?

Best,

philip

update:
some more investigation revealed the following.

when i do call the to_json method in the console on a single object it
all works fine.
the error occurs only when i get a collection of objects.

ArgumentError: redundant UTF-8 sequence
from
/usr/lib/ruby/gems/1.8/gems/activesupport-3.0.9/lib/active_support/json/encoding.rb:130:in
unpack' from /usr/lib/ruby/gems/1.8/gems/activesupport-3.0.9/lib/active_support/json/encoding.rb:130:inescape’
from
/usr/lib/ruby/gems/1.8/gems/activesupport-3.0.9/lib/active_support/json/encoding.rb:125:in
gsub' from /usr/lib/ruby/gems/1.8/gems/activesupport-3.0.9/lib/active_support/json/encoding.rb:125:inescape’
from
/usr/lib/ruby/gems/1.8/gems/activesupport-3.0.9/lib/active_support/json/encoding.rb:68:in
escape' from /usr/lib/ruby/gems/1.8/gems/activesupport-3.0.9/lib/active_support/json/encoding.rb:173:inencode_json’
from
/usr/lib/ruby/gems/1.8/gems/activesupport-3.0.9/lib/active_support/json/encoding.rb:47:in
encode' from /usr/lib/ruby/gems/1.8/gems/activesupport-3.0.9/lib/active_support/json/encoding.rb:77:incheck_for_circular_references’
from
/usr/lib/ruby/gems/1.8/gems/activesupport-3.0.9/lib/active_support/json/encoding.rb:45:in
encode' from /usr/lib/ruby/gems/1.8/gems/activesupport-3.0.9/lib/active_support/json/encoding.rb:247:inencode_json’
from (irb):26:in map' from /usr/lib/ruby/gems/1.8/gems/activesupport-3.0.9/lib/active_support/json/encoding.rb:247:ineach’
from
/usr/lib/ruby/gems/1.8/gems/activesupport-3.0.9/lib/active_support/json/encoding.rb:247:in
map' from /usr/lib/ruby/gems/1.8/gems/activesupport-3.0.9/lib/active_support/json/encoding.rb:247:inencode_json’
from
/usr/lib/ruby/gems/1.8/gems/activesupport-3.0.9/lib/active_support/json/encoding.rb:47:in
encode' from /usr/lib/ruby/gems/1.8/gems/activesupport-3.0.9/lib/active_support/json/encoding.rb:77:incheck_for_circular_references’
from
/usr/lib/ruby/gems/1.8/gems/activesupport-3.0.9/lib/active_support/json/encoding.rb:45:in
encode' from /usr/lib/ruby/gems/1.8/gems/activesupport-3.0.9/lib/active_support/json/encoding.rb:247:inencode_json’
from (irb):26:in map' from /usr/lib/ruby/gems/1.8/gems/activesupport-3.0.9/lib/active_support/json/encoding.rb:247:ineach’
from
/usr/lib/ruby/gems/1.8/gems/activesupport-3.0.9/lib/active_support/json/encoding.rb:247:in
map' from /usr/lib/ruby/gems/1.8/gems/activesupport-3.0.9/lib/active_support/json/encoding.rb:247:inencode_json’
from
/usr/lib/ruby/gems/1.8/gems/activesupport-3.0.9/lib/active_support/json/encoding.rb:214:in
encode_json' from /usr/lib/ruby/gems/1.8/gems/activesupport-3.0.9/lib/active_support/json/encoding.rb:214:inmap’
from
/usr/lib/ruby/gems/1.8/gems/activesupport-3.0.9/lib/active_support/json/encoding.rb:214:in
encode_json' from /usr/lib/ruby/gems/1.8/gems/activesupport-3.0.9/lib/active_support/json/encoding.rb:47:inencode’
from
/usr/lib/ruby/gems/1.8/gems/activesupport-3.0.9/lib/active_support/json/encoding.rb:77:in
check_for_circular_references' from /usr/lib/ruby/gems/1.8/gems/activesupport-3.0.9/lib/active_support/json/encoding.rb:45:inencode’
from
/usr/lib/ruby/gems/1.8/gems/activesupport-3.0.9/lib/active_support/json/encoding.rb:30:in
encode' from /usr/lib/ruby/gems/1.8/gems/activesupport-3.0.9/lib/active_support/core_ext/object/to_json.rb:15:into_json’

Hi,

the problem occurs if you have columns with byte data.
to exclude them of the serialization is used

def serializable_hash(options=nil)
options ||= {}
options.merge!( :except=> [:MY_BYTEDATA_COLUMN] ) if
options[:except].blank?
super(options)
end

dc dieci wrote in post #1010652:

Hi guys,
I have a simple controller

def gmap
@intentsearches = Intentsearch.all
logger.info @intentsearches
respond_to do |format|
format.html {render :gmap}
format.xml {render :xml => @intentsearches }
format.json { render :json => @intentsearches }
end
end

and want a json response, but i do get the following error

Completed 500 Internal Server Error in 107ms

ArgumentError (redundant UTF-8 sequence):
app/controllers/intentsearches_controller.rb:103:in gmap' app/controllers/intentsearches_controller.rb:100:ingmap’

Rendered

/usr/lib/ruby/gems/1.8/gems/actionpack-3.0.9/lib/action_dispatch/middleware/templates/rescues/_trace.erb

(1.0ms)
Rendered

/usr/lib/ruby/gems/1.8/gems/actionpack-3.0.9/lib/action_dispatch/middleware/templates/rescues/_request_and_response.erb

(36.4ms)
Rendered

/usr/lib/ruby/gems/1.8/gems/actionpack-3.0.9/lib/action_dispatch/middleware/templates/rescues/diagnostics.erb

within rescues/layout (40.7ms)

I am sending a http request with only one header param
Accept : application/json

Does anyone know about this issue?

Best,

philip

update:
some more investigation revealed the following.

when i do call the to_json method in the console on a single object it
all works fine.
the error occurs only when i get a collection of objects.

ArgumentError: redundant UTF-8 sequence
from

/usr/lib/ruby/gems/1.8/gems/activesupport-3.0.9/lib/active_support/json/encoding.rb:130:in

`unpack’
from

/usr/lib/ruby/gems/1.8/gems/activesupport-3.0.9/lib/active_support/json/encoding.rb:130:in

`escape’
from

/usr/lib/ruby/gems/1.8/gems/activesupport-3.0.9/lib/active_support/json/encoding.rb:125:in

`gsub’
from

/usr/lib/ruby/gems/1.8/gems/activesupport-3.0.9/lib/active_support/json/encoding.rb:125:in

`escape’
from

/usr/lib/ruby/gems/1.8/gems/activesupport-3.0.9/lib/active_support/json/encoding.rb:68:in

`escape’
from

/usr/lib/ruby/gems/1.8/gems/activesupport-3.0.9/lib/active_support/json/encoding.rb:173:in

`encode_json’
from

/usr/lib/ruby/gems/1.8/gems/activesupport-3.0.9/lib/active_support/json/encoding.rb:47:in

`encode’
from

/usr/lib/ruby/gems/1.8/gems/activesupport-3.0.9/lib/active_support/json/encoding.rb:77:in

`check_for_circular_references’
from

/usr/lib/ruby/gems/1.8/gems/activesupport-3.0.9/lib/active_support/json/encoding.rb:45:in

`encode’
from

/usr/lib/ruby/gems/1.8/gems/activesupport-3.0.9/lib/active_support/json/encoding.rb:247:in

encode_json' from (irb):26:inmap’
from

/usr/lib/ruby/gems/1.8/gems/activesupport-3.0.9/lib/active_support/json/encoding.rb:247:in

`each’
from

/usr/lib/ruby/gems/1.8/gems/activesupport-3.0.9/lib/active_support/json/encoding.rb:247:in

`map’
from

/usr/lib/ruby/gems/1.8/gems/activesupport-3.0.9/lib/active_support/json/encoding.rb:247:in

`encode_json’
from

/usr/lib/ruby/gems/1.8/gems/activesupport-3.0.9/lib/active_support/json/encoding.rb:47:in

`encode’
from

/usr/lib/ruby/gems/1.8/gems/activesupport-3.0.9/lib/active_support/json/encoding.rb:77:in

`check_for_circular_references’
from

/usr/lib/ruby/gems/1.8/gems/activesupport-3.0.9/lib/active_support/json/encoding.rb:45:in

`encode’
from

/usr/lib/ruby/gems/1.8/gems/activesupport-3.0.9/lib/active_support/json/encoding.rb:247:in

encode_json' from (irb):26:inmap’
from

/usr/lib/ruby/gems/1.8/gems/activesupport-3.0.9/lib/active_support/json/encoding.rb:247:in

`each’
from

/usr/lib/ruby/gems/1.8/gems/activesupport-3.0.9/lib/active_support/json/encoding.rb:247:in

`map’
from

/usr/lib/ruby/gems/1.8/gems/activesupport-3.0.9/lib/active_support/json/encoding.rb:247:in

`encode_json’
from

/usr/lib/ruby/gems/1.8/gems/activesupport-3.0.9/lib/active_support/json/encoding.rb:214:in

`encode_json’
from

/usr/lib/ruby/gems/1.8/gems/activesupport-3.0.9/lib/active_support/json/encoding.rb:214:in

`map’
from

/usr/lib/ruby/gems/1.8/gems/activesupport-3.0.9/lib/active_support/json/encoding.rb:214:in

`encode_json’
from

/usr/lib/ruby/gems/1.8/gems/activesupport-3.0.9/lib/active_support/json/encoding.rb:47:in

`encode’
from

/usr/lib/ruby/gems/1.8/gems/activesupport-3.0.9/lib/active_support/json/encoding.rb:77:in

`check_for_circular_references’
from

/usr/lib/ruby/gems/1.8/gems/activesupport-3.0.9/lib/active_support/json/encoding.rb:45:in

`encode’
from

/usr/lib/ruby/gems/1.8/gems/activesupport-3.0.9/lib/active_support/json/encoding.rb:30:in

`encode’
from

/usr/lib/ruby/gems/1.8/gems/activesupport-3.0.9/lib/active_support/core_ext/object/to_json.rb:15:in

`to_json’