法语字符'à'在经典ASP服务器端和数据库中被读为'Ã'
问题描述:
我有一个接受文本并发布到服务器的表单。法语字符'à'在经典ASP服务器端和数据库中被读为'Ã'
如果用户输入一个法语字符(如'à'),它将被经典ASP代码读为'Ã',并作为'Ã'存储在SQL Server 2005数据库中。
类似的情况发生在其他重音字符上。发生了什么?
答
这是字符编码的问题。显然,您的服务器和数据库配置了字符集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的值是什么?
你的意思是经典的ASP或ASP.NET? – 2009-07-21 18:31:23
我的意思是经典的ASP – burnt1ce 2009-07-21 19:06:25