我试图通过PHP将一些数据存储在SQL Server数据库中.
问题是特殊字符未正确转换.我的app的charset是iso-8859-1,服务器使用的是windows-1252.
在插入之前手动转换数据没有帮助,似乎有一些转换正在进行.
运行SQL查询'set char_convert off'也无济于事.
任何人都知道如何让这个工作?
编辑:我试过ini_set('mssql.charset','windows-1252'); 同样,但也没有结果.
我花了最后几个小时让我的网站验证HTML 4.01严格,我实际上已经成功,但仍然有一个我无法摆脱的警告.警告是:
字符编码不匹配!
HTTP标头(iso-8859-1)中指定的字符编码与元素(utf-8)中的值不同.我将使用HTTP头(iso-8859-1)中的值进行此验证.
有问题的页面是www.dubiousarray.net/default.html.从页面源代码中我可以看到,我有以下元元素:
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
Run Code Online (Sandbox Code Playgroud)
我确保default.html文件使用UTF-8编码保存.奇怪的是,网站中的所有其他页面都在没有此警告的情况下进行验证,并且它们具有相同的元标记,并以完全相同的方式保存.我很确定它与服务器配置有关..htaccess文件目前看起来像这样:
# Use PHP5 as default
AddHandler application/x-httpd-php5 .php
AddDefaultCharset UTF-8
Run Code Online (Sandbox Code Playgroud)
但我已尝试过本页显示的所有修复程序,但没有一个能够正常工作.有没有人对如何摆脱这个警告有任何想法?最后一点,在Firefox中,如果右键单击页面并选择"查看页面信息",则default.html显示为ISO-8859-1,而所有其他页面显示为UTF-8.
谢谢你,雅各布
编辑:需要注意的是,所有的html文件都是以完全相同的方式创建和保存的(字符编码设置为UTF-8而没有BOM)但default.html是唯一一个不显示为UTF-8的文件.所以我假设服务器正在对default.html文件做一些特殊的事情,虽然我不确定.htaccess文件中没有它的标志.