if i make use of the (pseudo) Iconv : macroman = Iconv.new('macintosh', 'utf-8', str)
i found MacRoman is internally 'macintosh' because : puts "CFStringConvertEncodingToIANACharSetName(KCFStringEncodingMacRoman) = #{CFStringConvertEncodingToIANACharSetName(KCFStringEncodingMacRoman)}" gave me : # => CFStringConvertEncodingToIANACharSetName(KCFStringEncodingMacRoman) = macintosh i get back a string (saved to file) still in UTF-8 encoded. then i've read the source of "/Library/Frameworks/MacRuby.framework/Versions/0.6/usr/lib/ruby/1.9.0/iconv.rb" and put some part in a moke-up like that : framework 'Foundation' str = "une phrase accentuée, ça vous va ?" puts str puts "str.size = #{str.size}, str.encoding = #{str.encoding}" def to_macroman(str) data = CFStringCreateExternalRepresentation(nil, str, KCFStringEncodingMacRoman, 0) if data.nil? raise "can't retrieve data from `#{str}'" end dest = CFStringCreateFromExternalRepresentation(nil, data, KCFStringEncodingMacRoman) if dest.nil? raise "can't convert data from `#{str}'" end CFRelease(data) CFRelease(dest) dest.mutableCopy return dest end macroman = to_macroman(str) puts "macroman.size = #{macroman.size}, macroman.encoding = #{macroman.encoding}" File.open("#{SIGNATURES_FOLDER}macroman.txt", File::WRONLY|File::TRUNC|File::CREAT, 0666) {|f| f.print macroman} giving the output : une phrase accentuée, ça vous va ? str.size = 34, str.encoding = UTF-8 macroman.size = 34, macroman.encoding = UTF-8 then i ask why this doesn't convert to MacRoman, as the internal iconv.rb ???? best, Yvon
_______________________________________________ MacRuby-devel mailing list MacRuby-devel@lists.macosforge.org http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel