我有一个用 Perl、Apache 和 Mysql 开发的遗留应用程序。
应用程序中的某些部分显示角色的 HTML 代码。问题被隔离到键盘上的以下字符:
- 分号
- 逗号
- 引号
- 小于号
- 大于号
存储这些数据的表本身也在存储这样的数据。该表是 CHARSET=latin1。
应用程序正在使用
<meta charset="utf-8" />
在 HTML 呈现中。
我的问题是“如何解决这个问题”?
- 我应该对数据库字符集进行一些更改吗? (我有多个 放置在应用程序中这是被破坏的地方和多个表 用于各个部分)
- 我应该在 PERL 数据库连接中做一些改变吗? (这看起来是处理问题的最佳位置,因为这对于使用 DB 交互的任何模块都很常见)模块,以便它将解码/编码特殊字符。
还有其他建议吗?
最佳答案
看起来不像是数据库字符集问题,而是 HTML 转义问题。您似乎在通常不会被 HTML 浏览器转义的数据值中预先转义了字符实体引用,但它们位于文本框内并已转义。它们是如何渲染的?通过一些未正确呈现转义的 AJAX 代码?
关于html - HTML 格式中出现的特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26582450/