我已将我的网站发布到服务器上,但由于性格问题,我正在撕掉我的头发.在本地,尽管我的任何愚蠢(不明确或不匹配的字符集),这一切都很好.我们只以一个表为例,因为它满足我们的条件:
我的本地场景
> PHP 5.3.0
> Apache 2.2.11
> MySQL 5.1.36-community-log
>连接:utf8_general_ci
>数据库:latin1_general_ci
> table:latin1_general_ci
> google chrome browser v.12.0.742.100 w / charset ISO-8859-1
> php page charset设置为:< meta http-equiv =“Content-Type”content =“text / html; charset = iso-8859-1”/>
> local:注意单词“Matéria” – 来自html – 和“Notícia” – 来自数据库 – 都正确显示重音:
我的主机场景
> PHP 5.3.6
>运行FastCGI的IIS
> MYSQL 5.5.13
>连接:utf8_general_ci
>数据库:latin1_general_ci
> table:latin1_general_ci
> google chrome browser v.12.0.742.100 w / charset ISO-8859-1
> php page charset设置为:< meta http-equiv =“Content-Type”content =“text / html; charset = iso-8859-1”/>
>主持人:注意“Notícia”如何显示自己的问题:
我已经阅读了一些内容,包括very good article为开发人员建立一个共同点.
我考虑过:
>问题是表中的实际数据(尽管它具有latin1_general_ci排序规则,但实际上数据的存储方式可能与this mate states it不同);
>问题与IIS有一些尴尬的关系(当一个人在IIS下运行PHP时,往往会责怪IIS);
>我的真空编程技巧再一次在我身上耍花招
有人提供一些帮助?我可以提供一些巴西葡萄牙语课程,一些关于精神生活的建议或者只是聊聊任何事情,但我必须解决这个问题,你可以帮助我.
提前致谢,
解决方法:
如果使用ISO-charsets,则必须确保文本存储的内容与将要显示的字符集相同.
这就是您的问题所在.
问题是charset你被拯救了什么?这不受您的数据库设置的影响.与普通观点相反,您的数据库仅使用字符集进行整理.但它只是按原样保存位序列.
将站点加载到浏览器中,然后强制浏览器使用ISO-1并查看它是否正确显示.如果是,则将其存储为ISO-1,如果不存在其他内容.
事情是:
>通过正确放置< meta http-equiv =“Co ...在代码的开头,您几乎总能让浏览器使用此charset.
>但如果没有那么你的确有些未定义会发生什么.有些浏览器使用启发式方法来猜测字符集.
标签:php,mysql,iis,character-encoding
来源: https://codeday.me/bug/20190710/1419321.html