В командной строке Windows cmd.exe
фактически не используется CP1252. Что он использует, по-видимому, зависит от системы; в западноевропейских системах это скорее всего CP850 . Таким образом, вы можете попробовать это:
titulo = new String (args[1].getBytes(),"Cp850");
Вы можете посмотреть кодовые таблицы для cp850 , чтобы проверить, что должно произойти: í - это байт ED в латинском 1 (и, соответственно, cp1252), а байт ED в cp850 равен Ý. Следовательно: если вы печатаете «í» из Java GUI в cmd.exe
, оно будет отображаться как «Ý».
(Но вы, похоже, видите обратное: «í» из терминала отображается как «Ý» в графическом интерфейсе ... это не имеет смысла, cmd.exe
должен передать байт A1 в Java, что должно интерпретировать это как "¡" ..)