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

问题描述:

我有一个接受文本并发布到服务器的表单。法语字符'à'在经典ASP服务器端和数据库中被读为'Ã'

如果用户输入一个法语字符(如'à'),它将被经典ASP代码读为'Ã',并作为'Ã'存储在SQL Server 2005数据库中。

类似的情况发生在其他重音字符上。发生了什么?

+0

你的意思是经典的ASP或ASP.NET? – 2009-07-21 18:31:23

+0

我的意思是经典的ASP – burnt1ce 2009-07-21 19:06:25

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

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

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

请参阅我的回答here了解可能发生的情况。

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

你究竟有什么ASP文件代码页设置为(在包含表单和页面的页面上)?

你在表单页面中设置Response.CharSet的值是什么?