将具有HTML字符编码的文本转换为数据库字符集



我们的应用程序从各种来源接收数据。其中一些包含HTML字符组成而不是常规字符。所以我们收到的不是字符串" "而是字符串"â"

如何使用SQL/PLSQL将"â"转换为数据库字符集中的字符?

Unescape_reference和excape_reference我相信是你们要找的

UTL_I18N。UNESCAPE_REFERENCE('你好& lt;& # xe5;")这将返回'hello <'||chr(229)。

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

您可以使用CHR()函数将ascii字符号转换为字符表示。

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

更多信息请参见:http://www.techonthenet.com/oracle/functions/chr.php

一个解

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

但是您必须嵌套许多替换函数,每个需要替换的实体对应一个替换函数。如果你需要替换很多的话,这可能会很慢。

您可以编写自己的函数,搜索&号并在找到时替换它。

您是否搜索了Oracle提供的软件包手册?我知道他们有一个函数对一些实体做相反的事情。

要将oracle中包含HTML项的列转换为纯文本,可以使用:

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

它将取代上面所述的HTML字符,但也将删除HTML标签,如果删除前导和尾随空格。

我希望它能帮助到别人。

最新更新