Обработка строк utf-8 в Java - PullRequest
0 голосов
/ 11 февраля 2012

У меня есть приложение, которое извлекает имена из активного каталога для домена с помощью вызовов ajax. Некоторые имена имеют испанские символы (например, тильда). Я использовал набор символов utf-8, чтобы символы правильно отображали данные в форме. Я могу успешно извлечь имена из вызова ajax и загрузить их в поле формы. У меня проблема в том, что когда форма отправляется на сервер для обновления базы данных, приведение String повреждает расширенные символы.

Существует ли специальная функция String для обработки utf-8? Как правильно вывести правильные значения в таблицы Oracle?

Я довольно много написал на Java, но это мое первое знакомство с расширенными символами. Любая помощь будет оценена.

Спасибо.

Ответы [ 2 ]

4 голосов
/ 11 февраля 2012

Где этот «актерский состав» вступает в игру?

Я не уверен, какое у вас приложение, но есть пара мест, где вы можете манипулировать персонажами. Во-первых, предполагая, что это какое-то приложение Java EE, убедитесь, что вы установили кодировку запроса в сервлете. См. Метод setCharacterEncoding для HttpServletRequest. Вы должны использовать "UTF-8" там.

Во-вторых, вы должны убедиться, что в переменной формы установлен атрибут accept-charset = "UTF-8". (Примечание: по моему опыту, это редко является проблемой, если страница кодируется в кодировке UTF-8 для начала, но лучше безопасна, чем извините).

Последнее, убедитесь, что вы указали какие-либо параметры кодирования, если это необходимо для подключения к базе данных. Я не использую Oracle, поэтому не знаю, но часто вам нужно указывать, чтобы использовать «unicode» или «utf-8» или что-то подобное, где вы создаете соединение.

Я бы попробовал их по порядку, потому что вполне возможно (вероятно), что первый сам может решить проблему.

1 голос
/ 11 февраля 2012

Вы хотите OutputStreamWriter . При его создании укажите, что вы хотите использовать кодировку "UTF-8". Также убедитесь, что вы указываете, что отправляете UTF-8 в заголовках http.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...