我们对数据库中的一些文本进行数据驱动,例如产品名称等。最近我们的营销团队要求我们显示带有特殊字符的产品名称,例如注册商标符号®、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® Awesome Product' where product_id = 1;
...这让我们的 webapp 很开心,但当然,任何试图显示产品列表的非 HTML(例如:生成报告的 SQL 查询)现在都会在名称中显示 HTML 字符。
有人对我们如何同时满足 HTML 和非 HTML 世界有任何想法吗?理想情况下,我们希望避免使用重复文本的单独列,但如果这真的是唯一的方法,我们可以走这条路。