如何在字符串中添加HTML entity符号 让@reg;被识别为注册商标®符号
你当前示例代码里的®本质是对&符号做了转义处理,所以最终只会渲染出纯文本®,无法识别为注册商标符号。另外注意HTML规范中注册商标的实体符号前缀是&而非@,如果你的字符串里写的是@reg;,默认不会被HTML原生识别,可根据你的使用场景选择对应处理方案:
场景1:直接在HTML中渲染,不需要保留@reg;占位符
直接把内容修改为正确的HTML实体即可:
"MyCompany® Official Site"
渲染效果为:MyCompany® Official Site
场景2:在普通编程语言字符串中使用
当前绝大多数开发环境默认采用UTF-8编码,可直接将®符号写入字符串,无需借助实体,兼容性完全满足需求:
"MyCompany® Official Site"
场景3:业务要求必须保留@reg;作为自定义占位符
可在内容渲染输出前做全局字符串替换,以JavaScript为例:
const rawStr = "MyCompany@reg; Official Site" const finalStr = rawStr.replaceAll('@reg;', '®') // 输出finalStr即可得到带注册商标的内容
场景4:模板渲染时被自动转义
Vue、React、Jinja2等框架的模板默认会自动转义特殊字符防止XSS风险,如果你的字符串已经包含正确的®实体但渲染不出来,使用框架提供的非转义渲染方法即可:
- React:使用
dangerouslySetInnerHTML属性渲染字符串 - Vue:在标签上添加
v-html属性绑定字符串 - Jinja2/Flask:渲染变量时添加safe过滤器,写法为
{{ your_str|safe }}
内容的提问来源于stack exchange,提问作者user17346867
相关产品推荐
相关产品推荐

