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

时间:2011-11-23 14:05:29

标签: sql oracle plsql

我们的应用程序从各种来源接收数据。其中一些包含HTML字符组成而不是常规字符。因此,我们不是使用字符串“â”来接收字符串“â”。

我们如何转换“â”使用SQL / PLSQL创建数据库字符集中的字符?

我们的数据库是10GR2。

4 个答案:

答案 0 :(得分:5)

Unescape_reference和excape_reference我相信你正在寻找

UTL_I18N.UNESCAPE_REFERENCE('hello<å') 这将返回'hello<'|| chr(229)。

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

答案 1 :(得分:1)

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

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

有关详细信息,请参阅:http://www.techonthenet.com/oracle/functions/chr.php

希望它有所帮助...

答案 2 :(得分:0)

一个解决方案

 replace(your_test, 'â', chr(226)) 

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

您可以编写自己的函数,选择&符号并在找到时替换。

您是否搜索过Oracle提供的软件包手册?我知道他们的功能与少数实体相反。

答案 3 :(得分:0)

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

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

它将替换上述HTML字符,但也会删除HTML标记以删除前导和尾随空格。

我希望它会帮助别人。

相关问题