Здравствуйте, Donz, Вы писали:
D>Здравствуйте, Madjack, Вы писали:
D>Тебе перед отправкой на сервер нужно получить массив байт из строки, которую ввел пользователь, в кодировке UTF-8, правильно?
H>>>String fio = field.getText(); // или что там нужно M>>Здесь строка fio будет в кодировке системы. Если на винде то в cp1251. А мне нужна в utf-8. Соответственно вместо: D>Нет, здесь строка будет во внутренней кодировке ява-платформы (UTF-16), но для тебя это не имеет значения.
M>>String text = jtextfield1.getText(); M>>bytes[] bytes = text.getBytes("utf-8"); M>>String utftext = new String(bytes); D>Этот код не имеет смысла. Ты получаешь строку, потом получаешь из нее массив байт в кодировке UTF-8, потом из этого массива байт снова пытаешься создать строку, но кодировку не указываешь, а значит подставляется кодировка по умолчанию, равная кодировке ОС. Для винды это windows-1251. Естественно, что ты получаешь фигню.
M>>я пишу одной строчкой M>>String text = jtextfield1.getText().getBytes("utf-8"); D>Почему String text? Вот так правильно из строки получить массив байт в кодировке utf-8: D>byte[] textBytes = jtextfield1.getText().getBytes("UTF-8");
D>Если хочешь проверить, что все правильно, то можно создать из этого массива байт строку: D>String test = new String( textBytes, "UTF-8" );
В принципе верно. Но как теперь в SOAP у которого на входе должна быть строка отдать этот массив байт?