Hello, Mono does not support non-UTF8 multibyte conversion by design. We shouldn't change its behavior from current one. Actually it is pretty classic matter which has been stated since 2003. http://lists.ximian.com/archives/public/mono-list/2003-June/014500.html
It is Microsoft who should provide additional marshaling flags so that it will be truly functional on every platforms (especially considering that there is also Gtk+ on Windows which is apparently designed to work on Windows and uses UTF-8 based marshaling). AFAIK they are also aware on this matter through ECMA meetings. Atsushi Eno > While debugging a SqliteClient issue, I came across an interesting bug. > The following returns null when I'm pretty sure it should not (it > doesn't on Windows): > > Marshal.PtrToStringAnsi(Marshal.StringToCoTaskMemAnsi("ü")) > > In case the encoding of this email gets messed up, that's a u with > umlauts, (char)0xFC. > > The encoding half "works" (Marshal.ReadByte reports the bytes (0xFC > 0x00)), on the assumption that I'm supposed to get ANSI out of this > method. Internally, g_utf16_to_utf8 is used, which means that (besides > being surprised this call doesn't actually do ANSI encoding) I would > actually expect a multibyte representation of that character. That's > from a few minutes of Googling for info on UTF-8. > > So I'm confused. Can someone with more knowledge about encodings tell > me whether this really doesn't make sense? > > I'm using the latest RPMs. Here's a test program: > > using System; > using System.Runtime.InteropServices; > > public class Test { > public static void Main() > Console.WriteLine(Marshal.PtrToStringAnsi(Marshal.StringToCoTaskMemAnsi("ü"))); > } > } > _______________________________________________ Mono-devel-list mailing list Mono-devel-list@lists.ximian.com http://lists.ximian.com/mailman/listinfo/mono-devel-list