Перевернутый вопросительный знак - PullRequest
2 голосов
/ 28 мая 2010

У нас очень странная проблема с нашим приложением, внезапно мы начали замечать, что перевернутые вопросительные знаки сохраняются вместе с другим текстом, введенным в поля на экране. Эти перевернутые знаки вопроса изначально не вводились пользователями, и неясно, откуда они. Мы используем Oracle 10g с Java. И это происходит, даже если данные не копируются из Microsoft Word

Ответы [ 5 ]

2 голосов
/ 28 мая 2010

Может ли пользователь вставить строку из MS Word в поле jsp?

2 голосов
/ 28 мая 2010

Перевернутый вопросительный знак часто используется, когда сохраненный символ не может быть отрисован клиентом. Так часто данные в базе данных в порядке, это ограничение для клиента.

Моим первым шагом будет использование функции DUMP для идентификации байтов. В качестве первого шага я бы удалил общие «известные действительные» символы (буквенно-цифровые и пробелы)

select DUMP(translate(upper(col),'~ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890 .,','~'),16) dmp,
       translate(upper(col),'~ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890 .,','~') val
from ...
where translate(upper(col),'~ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890 .,','~') is not null;

Тогда я сосредоточусь на том, что осталось. Обычно есть куча редких, но приемлемых знаков препинания (точка, запятая, дефис, апостроф и т. Д.). Я исключаю их по одному.

Все, что я не могу исключить, я исследую (т. Е. Google эти байты, поэтому я использую опцию '16' с DUMP, чтобы получить их в шестнадцатеричном виде). Вероятно, это какой-то акцентированный символ или цитата типа «тест», а не мягкий «тест».

1 голос
/ 28 мая 2010
0 голосов
/ 06 июня 2010

Я нашел решение этой проблемы, хотя до сих пор не знаю причину.

**** Код, вызвавший ошибку: ****

if (certHolderLoanNumber == null) {

certHolderLoanNumber = ""; // мы не хотим отображать "null"

}

%>

Номер займа: "/>

Код, который решил проблему:

certHolderLoanNumber = certificateHolder.getCertHolderLoanNumber ();

Номер займа: "/>

Ранее, когда для поля certHolderLoanNumber было явно задано значение "", значение, полученное в соответствии с просмотром при запуске отладчика, было "& nbsp". И когда это значение было дополнительно сохранено в базе данных, появлялся перевернутый знак вопроса в xml clob. GenUtils.nonnull также возвращает пустую строку, но на этот раз вопросительный знак не появился. Странно !!

0 голосов
/ 28 мая 2010

Спасибо всем за ваш ответ. Как-то, как есть это конкретное текстовое поле в jsp, для которого это происходит. И он сохраняет этот странный символ в этом столбце таблицы, когда нет данных для этого поля. Данные также не отображаются должным образом в базе данных. странная часть, это даже не происходит с каждой записью, поскольку я не мог повторить.

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