I've found a workover :

def to_macroman(str)
  data = CFStringCreateExternalRepresentation(nil, str,
KCFStringEncodingMacRoman, 0)
  if data.nil?
    raise "can't retrieve data from `#{str}'"
  end
  dest = "".force_encoding("MacRoman")
#
# force dest to be of "MacRoman"
#
  dest += CFStringCreateFromExternalRepresentation(nil, data,
KCFStringEncodingMacRoman)
#____^_______ new
#
  if dest.nil?
    raise "can't convert data from `#{str}'"
  end
  CFRelease(data)
  #CFRelease(dest)
#
# commented otherwise i get a malloc error
# may be it's ruby here making GC ?
#
  dest.mutableCopy
  return dest
end


giving the right output :

une phrase accentuée, ça vous va ?
str.size = 34, str.encoding = UTF-8
macroman.size = 36, macroman.encoding = macRoman
_______________________________________________
MacRuby-devel mailing list
MacRuby-devel@lists.macosforge.org
http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel

Reply via email to