JSP отображение одинарных и двойных кавычек как символ

Не раздавайте явные наборы, даже дженерики. Они не могут быть защищены, и у них не может быть логики, присоединенной к ним.

А хорошая параллель имела бы общедоступную переменную вместо метода set/метода get. метод set/метод get позволяет Вам изменять свою конкретную реализацию, не производя внешний мир.

, Как Вы изменяете свою структуру данных, не производя внешний мир, если Вы раздаете набор? Весь доступ для Вашего набора распределяется всюду по всему Вашему коду!!

Вместо этого обертка это и дают себе место для помещения небольшой бизнес-логики. Вы найдете, что некоторые хорошие осуществляют рефакторинг, как только Вы сделали так.

Часто Вы будете находить, что имеет смысл добавлять некоторые переменные и возможно второй набор - тогда Вы поймете, что этот класс отсутствовал все время!

5
задан Berek Bryan 4 September 2009 в 17:57
поделиться

4 ответа

Это, вероятно, нестандартные символы в вашей базе данных ... возможно, направленные кавычки вместо прямых вверх и вниз?

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

1
ответ дан 13 December 2019 в 22:12
поделиться

0094 - фигурная двойная кавычка. Напишите метод, чтобы заменить его на прямые двойные кавычки или объект HTML для фигурных двойных кавычек: & rdquo; или & # x94 , который отображается как: 4 ”x 6 ??

0
ответ дан 13 December 2019 в 22:12
поделиться

Это символ U + 0094, который в значительной степени является неиспользуемым управляющим кодом. Обычно вы получаете символы из этого диапазона случайно, если используете ISO-8859-1 для декодирования байтов, которые на самом деле находятся в кодовой странице Windows 1252 (западноевропейская). Они имеют похожие кодировки и часто путают друг с другом, но символы в диапазоне 0x80-0x9F разные. Windows cp1252 использует некоторые из них для таких вещей, как умные кавычки, чего вы, вероятно, ожидали здесь: двойная закрывающая кавычка (”, U + 201D RIGHT DOUBLE QUOTATION MARK).

Такая путаница заключается в том, что большинство веб-браузеров, когда сообщается, что веб-страница соответствует стандарту ISO-8859-1, вместо этого будет использоваться cp1252 и будет отображаться цитата. Так что, вероятно, это не проблема разметки.

У вас, вероятно, есть база данных, содержащая CP1252, и уровень доступа к данным, который преобразует байты из него в строку с использованием ISO-8859-1 - возможно, потому, что это кодировка сервера по умолчанию. В идеале вам нужно настроить базу данных для хранения строк Unicode изначально, но если вы не можете этого сделать, вам потребуется способ настроить коннектор базы данных на использование кодировки CP1252 вместо ISO-8859-1. Как вы это делаете, зависит от того, с чем и с чем вы связаны; вам, возможно, придется установить свойство или включить параметр в строку подключения.

Если вы не можете сделать то с вашим уровнем данных, остается только вручную просмотреть все строковые значения, которые вы получаете из базы данных, и перекодируете их обратно в то, что они должны быть, путем кодирования с помощью кодировки ISO-8859-1 с последующим декодированием с помощью CP1252. Это было бы настоящей болью,

[Дополнительная проблема: закрывающие двойные кавычки - неправильный символ для обозначения дюймов. ″ (Unicode U + 2033 DOUBLE PRIME) было бы лучше всего, но если вы ограничены устаревшими кодировками, подойдет прямая двойная кавычка.]

9
ответ дан 13 December 2019 в 22:12
поделиться

0094, как указывалось, не является прямой двойной кавычкой. Не то чтобы возникла проблема с использованием другой кавычки, но код 0094 недоступен в большинстве шрифтов - , похоже, только в некоторых восточноазиатских шрифтах есть этот символ . Фактически, именно символ CANCEL попадает в категорию управляющих символов , а не начальная цитата или конечная цитата категории символов.

Это так. также относительно неиспользуемый символ, хотя он присутствует в дополнительном блоке Latin-1 Unicode. Таким образом, вы можете наложить фильтр (входной или выходной) для обработки этого символа.

Входной фильтр просто наложит белый список символов, которые ваше приложение будет хранить и, очевидно, поддерживать при отображении.

0
ответ дан 13 December 2019 в 22:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: