HTML存储在数据库中。 £符号存储为£并在1252中正确呈现但是当我将页面编码更改为utf-8渲染错误时?
我知道这是一个简单的问题..?
答案 0 :(得分:1)
如果数据库编码不是UTF-8,或者应用程序没有以UTF-8的形式从数据库中检索数据,则数据库中存储的数据将无法正确呈现。什么是数据库,您的应用程序平台是什么?
答案 1 :(得分:0)
您需要确保数据库服务器及其连接都支持UTF8。 您使用的是什么数据库和Web服务器?
答案 2 :(得分:0)
答案 3 :(得分:0)
此Stack Overflow线程描述了如何使用UTF-8 + MySQL + PHP:Strategy for supporting unicode & multi language in PHP5
另外,在使用UTF-8字符串时,请确保使用the correct htmlentities()
parameters。
更新:我刚刚注意到你更新了你的帖子(标签)以显示你正在使用ASP(而不是PHP),但我想答案仍然存在。确保数据库表和字段以及与该数据库的连接设置为UTF-8,并确保在应用程序中正确处理UTF-8字符串。
答案 4 :(得分:0)
我不太确定经典ASP使用UTF8作为其默认字符串类型(如.net确实如此),因此您可以将页面简单地更改为ISO-8859-1,它将起作用。
答案 5 :(得分:0)
您的SQL Server使用哪种归类序列,以及系统上正在使用的代码页?它会将传入的数据转换为可以存储在 字符集中的内容,这可能对您想要获取的内容无效。我公司的产品意外地将'ü'翻译成'÷',直到我们理顺它为止。
答案 6 :(得分:0)
在ASP中正确使用UTF-8需要做些什么。
<%@ codepage=65001 %>
Response.CharSet = "UTF-8"
这就是说我强烈建议不要在数据库中存储HTML,除非你真的建立某种CMS和/或有一些严格的审查程序。
我的猜测是你忘了做最后两个要点之一。
答案 7 :(得分:0)
你把角色保存为数据库中的unicode吗?
在nvarchar字段中插入unicode数据时,总是在字符串前面加上N insert into table (stringfieldname) values (N'data to be inserted')
,这将确保正确存储数据......