法语字符'à'在Classic ASP服务器端和数据库中被读作'Ã'

时间:2009-07-21 18:21:10

标签: sql-server asp-classic character-encoding

我有一个接受文本的表单并发布到服务器。

如果用户要输入法语字符(如“à”),它将被Classic ASP代码读作“Ô,并在SQL Server 2005数据库中存储为“Ô。

其他重音字符也会发生类似的影响。发生了什么?

3 个答案:

答案 0 :(得分:2)

这是字符编码的问题。显然,您的服务器和数据库配置了字符集Windows-1252或ISO-8859-1,并且您正在接收UTF-8数据。

您应该检查您的服务器是否发送了一个Content-Type或Content-Encoding标头,其值以“charset = iso-8859-1”结尾。

我猜你的服务器不发送文件的字符集,默认配置设置为UTF-8的人发送UTF-8字符,这些字符在数据库中存储为iso-8859-1(或Windows-1252)

答案 1 :(得分:0)

请参阅我的回答here,了解可能发生的事情的详细信息。

您需要确保表单帖子中使用的编码与接收页面的Response.CodePage匹配。您可以通过在表单元素上放置accept-charset属性来配置表单发送的实际字符集。默认的accept-charset是文档char-set。

您究竟将ASP文件代码页设置为什么(包含表单的页面和接收帖子的页面)?

您在表单页面中将Response.CharSet值设置为什么?

答案 2 :(得分:0)

我刚刚在老的经典asp应用程序中尝试彻底解决此问题,该应用程序使用jquery ajax帖子将信息存储在数据库中。尝试了所有组合,但没有运气。

最终使用stored proc mentioned here修改了所有SQL选择,并且魔术发生了。数据仍存储在数据库中,但已损坏,但在站点上正确显示。