ава, не тупи. Тот юникод, что используется для отображения в виндах (UTF16 с прямым порядком байт) кодируется только в два байта, и то (я лично проверял) не все символы отображаются. А про то, что не все символы переводимы - 1) можно догадаться и самому, 2) в этой статье так и написано, только другими словами (к примеру: Обратите внимание на то, что хотя UTF-8 позволяет указать один и тот же символ несколькими способами, только наиболее короткий из них правильный. Остальные формы должны отвергаться по соображениям безопасности. Так же : ...поскольку символа U+FFFE не существует.) А вообще хреновый ты ресурс подогнал, лучше тут почитай http://www.regatta.cs.msu.su/doc/usr/share/man/info/ru_RU/a_doc_lib/aixprggd/genprogc/codeset_over.htm
Вообще-то Windows поддерживает суррогатные пары UTF-16. Во всяком случае, символ U+10000 (F0 90 80 80 в UTF-8) преобразуется правильно (00 D8 00 DC в UTF-16LE). Так что заявление насчет 65535 символов чересчур пессимистично...
да, признаю свою ошибку =)), конечно такие суррогатные пары отображаются нормально, как и пологается =), дело в том, что под таким символом имел ввиду пару символов, составляющую данный =), о чем не сделал оговорку. Так или иначе винда принимает либо однобайтовые символы, либо двухбайтовые ( если надо - то пара из двух байт, отрисовывает как один суррогатный - такое часто используется на языке иврита, а если я не ошибаюсь, то даже суррогат может состоять не из 4 байт, а более, точнее скажу, когда выловлю знакомого, он изучал иврит ). Но меня мучал и мучает другой вопрос =), почему же все таки винда при указании -1 не может определить верность кодировки UTF-8 =\