| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: Общие вопросы > А как узнать весь список кодировок? |
| Автор: Sleepy_PIP 17.11.2004, 22:43 |
| Дело в том, что charsets.jar не имеет (в SDK нет) исходных тескстов для sun.nio.* и sun.io.* интересно - а почему OutputStreamWriter(stream,coding) |
| Автор: Domestic Cat 17.11.2004, 22:45 |
| Потому что это зависит от ОС. А узнать все доступные чарсеты можно с помощью метода availableCharsets() : http://java.sun.com/j2se/1.4.2/docs/api/java/nio/charset/Charset.html#availableCharsets() |
| Автор: Sleepy_PIP 18.11.2004, 10:15 | ||
А как тогда понять следущее: Вот, получил доступные чарсеты по SortedMap dd=Charset.availableCharsets(); {Big5=Big5, Big5-HKSCS=Big5-HKSCS, EUC-JP=EUC-JP, EUC-KR=EUC-KR, GB18030=GB18030, GBK=GBK, ISO-2022-JP=ISO-2022-JP, ISO-2022-KR=ISO-2022-KR, ISO-8859-1=ISO-8859-1, ISO-8859-13=ISO-8859-13, ISO-8859-15=ISO-8859-15, ISO-8859-2=ISO-8859-2, ISO-8859-3=ISO-8859-3, ISO-8859-4=ISO-8859-4, ISO-8859-5=ISO-8859-5, ISO-8859-6=ISO-8859-6, ISO-8859-7=ISO-8859-7, ISO-8859-8=ISO-8859-8, ISO-8859-9=ISO-8859-9, JIS_X0201=JIS_X0201, JIS_X0212-1990=JIS_X0212-1990, KOI8-R=KOI8-R, Shift_JIS=Shift_JIS, TIS-620=TIS-620, US-ASCII=US-ASCII, UTF-16=UTF-16, UTF-16BE=UTF-16BE, UTF-16LE=UTF-16LE, UTF-8=UTF-8, windows-1250=windows-1250, windows-1251=windows-1251, windows-1252=windows-1252, windows-1253=windows-1253, windows-1254=windows-1254, windows-1255=windows-1255, windows-1256=windows-1256, windows-1257=windows-1257, windows-1258=windows-1258, windows-31j=windows-31j, x-EUC-CN=x-EUC-CN, x-euc-jp-linux=x-euc-jp-linux, x-EUC-TW=x-EUC-TW, x-ISCII91=x-ISCII91, x-JIS0208=x-JIS0208, x-Johab=x-Johab, x-MS950-HKSCS=x-MS950-HKSCS, x-mswin-936=x-mswin-936, x-windows-949=x-windows-949, x-windows-950=x-windows-950} среди них _НЕТ_ ANSI-1251. Однако конструкции _controlInput = new BufferedReader(new InputStreamReader(getInputStream(), "ANSI-1251")); _controlOutput = new BufferedWriter(new OutputStreamWriter(getOutputStream(), "ANSI-1251")); отлично работают и _controlOutput и _controlInput вполне используемые ... только как-то странновато - буквы 'я' (и кажется 'c' (русская) - еще не до конца онтосительно нее проверил) в _controlInput просто съедаются ... |
| Автор: Sun 18.11.2004, 11:07 |
| А зачем использовать ANSI-1251? Я первый раз такое название встречаю. Используй windows-1251. А еще лучше использовать UTF-8 или UTF-16. |
| Автор: Sleepy_PIP 18.11.2004, 11:59 | ||||
вот мне и странно - такой кодировки в списке нет, а работает не хуже windows-1251. и как это понимать? почему обрабатывается нормально кодировка отсудствующая в списке? PS: Забыл добавить. пропадание буквы 'я' замечено на сокетных стримах. на файловых - все прекрасно. Интересная мысль Добавлено @ 12:02
вот мне и странно - такой кодировки в списке нет, а работает не хуже windows-1251. и как это понимать? почему обрабатывается нормально кодировка отсудствующая в списке? PS: Забыл добавить. пропадание буквы 'я' замечено на сокетных стримах. на файловых - все прекрасно. Интересная мысль |
| Автор: Sun 18.11.2004, 12:13 |
| Может если указываешь несуществующую кодировку, то используется установленная в системе по умолчанию? В твоем случае windows-1251. |