1

我们对数据库中的一些文本进行数据驱动,例如产品名称等。最近我们的营销团队要求我们显示带有特殊字符的产品名称,例如注册商标符号®、ascii 代码 174。

我的问题是,我们如何才能最好地将这个字符存储在我们的数据中,以便它以 HTML 和非 HTML 格式正确显示?起初,我们尝试了这样的事情:

update products_table set display_name = 'FooCorp' || chr(174) || ' Awesome Product' where product_id = 1;

当我在 TOAD 中查询该产品时,注册商标符号正确显示,但是当我们尝试在我们的 web 应用程序中查询和显示该文本时,Firefox 和 IE 都不知道如何显示它。两者都显示“带 ? 的钻石” 符号代替。

接下来,我们这样做了:

update products_table set display_name = 'FooCorp&#174 Awesome Product' where product_id = 1;

...这让我们的 webapp 很开心,但当然,任何试图显示产品列表的非 HTML(例如:生成报告的 SQL 查询)现在都会在名称中显示 HTML 字符。

有人对我们如何同时满足 HTML 和非 HTML 世界有任何想法吗?理想情况下,我们希望避免使用重复文本的单独列,但如果这真的是唯一的方法,我们可以走这条路。

4

1 回答 1

0

好吧, chr(174) 在 Oracle 中可能意味着 smth,但是当涉及到 Web 浏览器时,它们可能具有 diff char。设置等...我不确定,但也许您只是将该字符硬编码到您的查询中:

    SELECT 'FooCorp® Awesome Product' FROM dual;
于 2013-02-07T19:09:51.290 回答