2012-02-14 75 views
2

在区表 我有一个行作为重音字符不能正确显示在浏览器

district_id district_name country_id 
15   Šahty   16  

虽然从PHP选择在浏览器中显示,它表明这样的:ahty

我使用MSSQL分类为SQL_Latin1_General_CP1_CI_AS。

问题是这样的 removing accent and special characters 但我需要在PHP解决方案。 (?): 在sqlserver中不支持UTF-8。 https://dba.stackexchange.com/questions/7346/mssql-2005-2008-utf-8-collation-charset

+3

是Web服务器提供相同的字符集的HTML,或做你有''在输出HTML中指定的字符集? – 2012-02-14 11:54:24

+0

您不需要删除重音符,只需指示浏览器应如何解释。 – Jon 2012-02-14 11:55:20

回答

1

嗨,你需要考虑正确的HTML内容类型标题

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 

的数据可以被正确选择,但如你预期的浏览器可能无法显示它们。 你可以通过菜单视图 - >字符编码 - >在firefox中使用此功能,直到找到正确的一个

+0

他特别说他的字符集是'SQL_Latin1_General_CP1_CI_AS',这是我上次检查的时候,不是utf8。 – 2012-02-14 11:59:13

+3

我说,正确的元头,我提供的剪断只是例子,不是解决方案,但确定... – rkosegi 2012-02-14 12:04:20

+1

从你的答案中不清楚,考虑添加“例如:”或类似的东西。 – 2012-02-14 12:05:52

0

为了使特殊字符有效,一般规则是所有组件必须使用相同的编码。这意味着数据库,数据库连接(连接到数据库后经常被忘记'SET NAMES {charset}'调用)和网页Content-type必须全部在相同的字符集中。

如果你问latin1数据库的数据,并且数据库连接也有latin1,请确保你显示的值的页面也是latin1。

尽管在任何地方都使用UTF-8而不是latin1,所以如果可能的话,我建议将数据库中的字符集和数据全部更改为UTF-8,因为它更全面兼容,更易于处理。

+0

因此,无法将sqlserver 2005数据库中的字符集更改为UTF-8。 http://dba.stackexchange.com/questions/7346/mssql-2005-2008-utf-8-collat​​ion-charset – prayagupd 2012-02-15 04:25:20

0

只需卸下UTF8字符集,并让浏览器选择字符集将设置为ISO-8859-1将与口音在SQL Server工作

+1

更具体将有助于这个答案 – dove 2013-02-26 16:14:36

相关问题