Проблема, которую я пытаюсь исправить, заключается в следующем: Пользователи нашего приложения - это копирование/вставка символов из документов, связанных с Windows, например Word, и наше приложение не распознает одиночные и двойные кавычки или маркеры.Почему мои кодированные данные UTF-8 не остаются? UTF-8? закодированы?
Эти шаги, которые я взял до сих пор, чтобы получить эти данные в формате UTF:
внутри servers.xml, в теге Connector, я добавил атрибут URIEncoding = "UTF-8".
в bean-компоненте, заряженном хранением ввода, я создал байт [] и передал в String содержимое inputNote, а затем преобразовал его в UTF-8. Затем передал преобразованную строку UTF-8 обратно в строку вводаNoteText. См. Ниже приведенный ниже код для конденсированного кода.
byte[] bytesInUTF8inputNoteText = inputNoteText.getBytes("UTF-8"); inputNoteText = new String(bytesInUTF8inputNoteText, "UTF-8"); this.var = inputNoteText;
В переменной сеттер заряженного с проведением результата из БД запроса: setNoteText (noteText), чтобы преобразовать данные заметки, поступающие из запроса к базе данных в байтах в формате UTF8, а затем преобразуется обратно в строку и установите его в свойство String noteText. Также ниже.
public void setNoteText(String noteText) throws UnsupportedEncodingException { byte[] bytesInUTF8inputNoteText = noteText.getBytes("UTF-8"); String noteTextUTF8 = new String(bytesInUTF8inputNoteText, "UTF-8"); this.noteText = noteTextUTF8;}
В SQL Server я изменил тип данных из текста в NVARCHAR (MAX), чтобы сохранить данные в Unicode, несмотря на то, что это другой тип Unicode.
То, что я вижу, когда я копировать/вставить из дока MS Word в наше входной JSF текстового поля:
В Eclipse, если я поставил часы на имуществе в бобе, когда данные в этой строке свойство было преобразовано в UTF-8, все символы находятся в формате UTF-8. Когда я отправляю на SQL Server строку данных, хранящихся в nvarchar (max), тип данных корректно отображает все символы в формате UTF-8. Затем, когда возвращается resultSet и свойство hold заполняется строкой, возвращаемой из запроса db, оно также показывает, что все правильно отформатированы в UTF-8 .... НО, ... где-то между правильным строковым значением, которое сидя в собственности, которая привязана к странице JSF и странице JSF, 1.2, кстати, значение не форматируется, поэтому я вижу вопросительные знаки, где я должен видеть одиночные/двойные кавычки и точки маркера. Я надеюсь, что кто-то столкнулся с этим типом проблемы раньше и может пролить свет на то, что мне нужно сделать, чтобы исправить это. Кажется, похоже на ошибку JSF, заблаговременно за ваш вклад!
У SQL Server нет встроенной поддержки UTF-8. См. [Эта статья] (http://support.microsoft.com/kb/232580). –