Преобразование текста с кодировкой символов HTML в набор символов базы данных - PullRequest
3 голосов
/ 23 ноября 2011

Наше приложение получает данные из разных источников. Некоторые из них содержат верстку символов HTML вместо обычных символов. Таким образом, вместо строки «â» мы получаем строку «â».

Как мы можем преобразовать "â" в символ в наборе символов базы данных, используя SQL / PLSQL?

Наша база данных 10GR2.

Ответы [ 4 ]

5 голосов
/ 23 ноября 2011

Unescape_reference и excape_reference Я думаю, это то, что вы ищете

UTL_I18N.UNESCAPE_REFERENCE ('привет <& # xe5;') Это возвращает 'привет <' || chr (229). </p>

http://docs.oracle.com/cd/B28359_01/appdev.111/b28419/u_i18n.htm#i998992

1 голос
/ 23 ноября 2011

Вы можете использовать функцию CHR () для преобразования номера символа ascii в представление символа.

SELECT chr(226)
  FROM dual;
CHR(226)
--------
â

Для получения дополнительной информации см .: http://www.techonthenet.com/oracle/functions/chr.php

Надеюсь, это поможет ...

0 голосов
/ 18 июля 2017

для преобразования столбца в oracle, содержащего элементы HTML, в обычный текст, вы можете использовать:

trim(regexp_replace(UTL_I18N.unescape_reference(column_name), '<[^>]+>'))

Он заменит символ HTML, как указано выше, но также удалит теги HTMLru убрать начальные и конечные пробелы.

Надеюсь, это кому-нибудь поможет.

0 голосов
/ 23 ноября 2011

одно решение

 replace(your_test, '&#226;', chr(226)) 

но вам придется вкладывать много функций замены, по одной для каждой сущности, которую нужно заменить. Это может быть очень медленно, если вам придется заменить много.

Вы можете написать свою собственную функцию, ища амперсанд и заменяя при обнаружении.

Вы искали руководство по поставляемым пакетам Oracle? Я знаю, что у них есть функция, которая делает противоположное для нескольких сущностей.

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