Project

General

Profile

Backport #6190

Updated by duerst (Martin Dürst) over 12 years ago

 
  >> a = " \xE9 ".encode('UTF-8', 'UTF-8', :invalid => :replace, :replace => "?") 
  >> a.valid_encoding? 
  => true 
  >> a 
  => " \xE9 " 
  >> a.squeeze 
  ArgumentError: invalid byte sequence in UTF-8 
 	 from (irb):32:in `squeeze' 
 	 from (irb):32 
 	 from /usr/bin/irb:12:in `<main>' 

 The expected string is " ? ", as the documentation for the ":replace" options says : 
 If the value is :replace, encode replaces invalid byte sequences in str with the replacement character. 

Back