|
0 / 0 / 0
Регистрация: 04.02.2014
Сообщений: 14
|
|||||||||||
Вывод строки c html-сущностями и кавычками04.02.2017, 10:51. Показов 3483. Ответов 14
Метки нет (Все метки)
Добрый день друзья.
Если мне нужно вывести строку из БД на экран, то делаю это так:
Как грамотно поступать в таких случаях? Спасибо
0
|
|||||||||||
| 04.02.2017, 10:51 | |
|
Ответы с готовыми решениями:
14
Проблема с кавычками и html-тегами |
|
|
|
| 04.02.2017, 10:57 | |
|
hwmaster, htmlentities.
0
|
|
|
0 / 0 / 0
Регистрация: 04.02.2014
Сообщений: 14
|
||
| 04.02.2017, 12:31 [ТС] | ||
|
Во втором примере строка выглядит так: $str="&_#21738; ЭЭ олвыдоа "fdsf" \' fdsfsdf\'"; пришлось в html сущность вставить знак _ иначе показывался сам иероглиф 哪
0
|
||
|
0 / 0 / 0
Регистрация: 04.02.2014
Сообщений: 14
|
|
| 04.02.2017, 13:35 [ТС] | |
|
ENT_SUBSTITUTE Заменяет некорректные кодовые последовательности символом замены Юникода U+FFFD в случае использования UTF-8 и &#FFFD; при использовании другой кодировки, вместо возврата пустой строки.
ENT_DISALLOWED Заменяет неверные коды символов для заданного типа документа символом замены юникода U+FFFD (UTF-8) или &#FFFD; (при использовании другой кодировки) вместо того, чтобы оставлять все как есть. Это может быть полезно, например, для того, чтобы убедиться в формальной правильности XML-документов со встроенным внешним контентом. Это тут не причем. Похоже вы не поняли проблемы. Попробую объснить получше: Сайт на windows-1251 в форме набирают: 请问,厕所在哪 - "иероглифы & сущности" на сервер через POST приходит: &_#35831;&_#38382;&_#65292;&_#21397;&_#2 5152;&_#22312;&_#21738; - "иероглифы & сущности" знак _ вставил я, чтобы показать коды сущностей. эту самую строку, где иероглифы представлены, как html сущности помещаем в БД в кодировке windows-1251. далее нужно вывести эту строку на странице сайта сделать просто echo нельзя, нужно сначала сделать htmlspecialchars(), как это обычно делается. Но при этом портятся коды сущностей, потому как из &_#35831; получаем 请 и вместо иероглифов мы видим коды сущностей.
0
|
|
|
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,904
|
||
| 04.02.2017, 14:05 | ||
|
Если так хотите преобразовывать на выходе - тогда сначала преобразовывайте сущности в спецсимволы и в таком виде сохраняйте в БД.
0
|
||
|
0 / 0 / 0
Регистрация: 04.02.2014
Сообщений: 14
|
||
| 04.02.2017, 16:22 [ТС] | ||
|
Добавлено через 5 минут
Похоже простого решения нет. Придется переписать htmlspecialchars() под свои нужды, т.е. костыль сделать. Что-то типа: взять строку, пройтись по ней, если встретили сущность, то не трогать, если просто &, то сделать из него сущность &. Регулярки придется использовать или можно побыстрее как-то?
0
|
||
|
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,904
|
|
| 04.02.2017, 17:01 | |
|
hwmaster, я бы базу на utf8 перевёл, зачем лишние проблемы?
0
|
|
|
0 / 0 / 0
Регистрация: 04.02.2014
Сообщений: 14
|
|||||||
| 04.02.2017, 23:45 [ТС] | |||||||
|
Но сайт специально пишется на cp1251 с целью оптимизации нагрузки на сервер при большом количестве запросов. Сайт будет работать только в России. Но нужна поддержка редких utf-8 символов. В данном случае не вижу смысла работать с utf-8 просто по тому что так все делают. осталось только понять, как сделать правильно в данном случае, чтобы было быстро и оптимально. Добавлено через 4 часа 3 минуты Еще вот вопрос родился. Для чего в htmlspecialchars обрабатывается символ &. Он каким образом влияет на вывод строки на экран? кавычки и угловые скобки - понятно, а с & что не так? Спасибо. Добавлено через 1 час 11 минут вот такое решение родилось:
оно конечно не действует на символьные сущности. Но похоже, что из формы на сервер отправляются только числовые.
0
|
|||||||
|
209 / 191 / 49
Регистрация: 15.03.2016
Сообщений: 1,229
|
|||||||||
| 05.02.2017, 06:48 | |||||||||
|
"специально" писать на cp1251 это серьёзная клиника не менее серьёзная клиника изначально надеяться на "большое кол-во запросов" при таком уровне знаний сколько было слито бюджетов на "крутые сервера" в погоне за такими целями, а в итоге всё выливалось в использование 1-2% мощностей очень способствует "сокращению нагрузок"
0
|
|||||||||
|
0 / 0 / 0
Регистрация: 04.02.2014
Сообщений: 14
|
|||
| 05.02.2017, 08:17 [ТС] | |||
|
Других грабель я не вижу, может подскажете. Кстати, чтоб вы знали - уровень знаний, никак не влияет на посещаемость сайта.
0
|
|||
|
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,904
|
|||
| 05.02.2017, 10:08 | |||
|
0
|
|||
|
0 / 0 / 0
Регистрация: 04.02.2014
Сообщений: 14
|
|||
| 05.02.2017, 11:05 [ТС] | |||
|
На всем интернет пространстве кричат, что utf-8 это наше все. Но складывается ощущение, что все преимущества utf-8 в том что с ним удобней работать программисту. Соглашусь, что, если программист не умеет работать с cp1251, то вместо того чтобы понять, как с этим работать он лучше будет отстаивать utf-8. Но получается, что сайт пишется только один раз, упрощая себе жизнь с utf-8 программист обрекает всех на дальнейшие постоянные удвоенные нагрузки на сервера и трафик. Это же не нормально. Я ведь не спорю. Так можно вообще скатиться до того, чтобы писать сайты на ассемблере. Вот где скорость то будет! Просто все голословно кричат utf-8 и ничто другое! В идеале было бы посмотреть на статистику нагрузки на сайт до перехода на Utf-8 и после. Вот это можно было бы рассматривать, как аргумент. Но я не нашел таких сравнений. Может подскажете, где искать?
0
|
|||
|
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,904
|
|||
| 05.02.2017, 12:04 | |||
Сообщение было отмечено hwmaster как решение
РешениеДля мультиязычных сайтов есть своя кодировка, вот и всё. Касательно нагрузок - спорно. Вы ведь собираетесь использовать спецсимволы и ради этого делаете костыли. Значит тестировать надо utf8 против cp1251 + ваши костыли.
0
|
|||
|
0 / 0 / 0
Регистрация: 04.02.2014
Сообщений: 14
|
||
| 05.02.2017, 13:27 [ТС] | ||
|
Сущности так или иначе придется обрабатывать, а это уже не один байт и теряется вся прелесть однобайтной кодировки. Вобщем стоит еще подумать о переходе на utf-8. Может у кого есть ссылки на примеры о результатах перехода на utf-8. Насколько увеличивается нагрузка на сервера. Про трафик, понятно примем увеличение на 25%, как терпимое.
0
|
||
| 05.02.2017, 13:27 | |
|
Помогаю со студенческими работами здесь
15
Связи между сущностями, вывод таблиц, Derby Вывод текста с кавычками текстого поля
Удаление слова с кавычками из строки.
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|