UTF-8£符号无法正确呈现

时间:2009-12-21 13:55:41

标签: sql-server encoding asp-classic utf-8

HTML存储在数据库中。 £符号存储为£并在1252中正确呈现但是当我将页面编码更改为utf-8渲染错误时?

我知道这是一个简单的问题..?

8 个答案:

答案 0 :(得分:1)

如果数据库编码不是UTF-8,或者应用程序没有以UTF-8的形式从数据库中检索数据,则数据库中存储的数据将无法正确呈现。什么是数据库,您的应用程序平台是什么?

答案 1 :(得分:0)

您需要确保数据库服务器及其连接都支持UTF8。 您使用的是什么数据库和Web服务器?

答案 2 :(得分:0)

您可以替换为:

£ or £

http://www.w3schools.com/tags/ref_entities.asp

还要确保已将字符集和编码设置为utf-8。

http://www.utf8.com/

答案 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需要做些什么。

  • 您的页面需要保存为UTF-8(如果它包含任何非ASCII字符)。
  • 任何服务器端脚本必须只包含ASCII字符
  • 您的页面应以行<%@ codepage=65001 %>
  • 开头
  • 您的服务器端脚本必须执行以下操作: - Response.CharSet = "UTF-8"

这就是说我强烈建议不要在数据库中存储HTML,除非你真的建立某种CMS和/或有一些严格的审查程序。

我的猜测是你忘了做最后两个要点之一。

答案 7 :(得分:0)

你把角色保存为数据库中的unicode吗?

在nvarchar字段中插入unicode数据时,总是在字符串前面加上N insert into table (stringfieldname) values (N'data to be inserted'),这将确保正确存储数据......