在地区表中 我有一排
district_id district_name country_id
15 Šahty 16
从php中选择并在浏览器中显示时,它显示如下: ahty
我正在使用带有排序规则SQL_Latin1_General_CP1_CI_AS的mssql 2005。
问题是这样的 removing accent and special characters 但我需要php中的解决方案。
UPDATE(?): 在sqlserver中不支持UTF-8。 https://dba.stackexchange.com/questions/7346/mssql-2005-2008-utf-8-collation-charset
答案 0 :(得分:1)
您好需要考虑正确的HTML内容类型标题
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
可以正确选择数据,但浏览器可能无法按预期显示。 你可以通过菜单视图在Firefox中玩这个 - &gt;字符编码 - &gt;直到找到正确的
答案 1 :(得分:0)
为了使特殊字符起作用,一般规则是所有组件必须使用相同的编码。这意味着数据库,数据库连接(连接到数据库后经常忘记'SET NAMES {charset}'调用)和网页Content-type必须全部在同一个字符集中。
如果您从latin1数据库询问数据并且数据库连接也有latin1,请确保您显示的页面值也是latin1。
建议尽管在任何地方都使用UTF-8而不是latin1,所以如果可能的话,我建议将数据库中的字符集和数据全部更改为UTF-8,因为它更全面兼容且更易于处理。
答案 2 :(得分:0)
只需删除UTF8字符集,然后让浏览器选择它将设置为ISO-8859-1的字符集,该字符集将与sql server中的重音符一起使用