我有一个备份服务器,该服务器自动备份我的活动站点,包括文件和数据库。
在实时站点上,文本看起来不错,但是当您查看其镜像版本时,显示为“?”在某些文本中。此文本存储在新闻数据库表中。
这里是它在实时服务器上以及在镜像服务器上的屏幕快照。
将其备份到镜像服务器的过程中会发生什么?
以下文章将是有用的
http://dev.mysql.com/doc/refman/5.0/en/charset-syntax.html
http://dev.mysql.com/doc/refman/5.0/en/charset-connection.html
连接到数据库后,发出以下命令:
SET NAMES'utf8';
确保您的网页也使用UTF-8编码:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
PHP还提供了一些对转换有用的功能:
在“镜像”服务器(有问题的服务器)上编辑Apache配置文件,并注释掉以下行:
AddDefaultCharset UTF-8
然后重新启动Apache:
service httpd restart
问题是,“ AddDefaultCharset UTF-8”行将覆盖.html文件中指定的Content-Type;例如:
<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
[最常见的症状是,高于127的字符代码显示为黑色菱形,上面带有问号(在Chrome,Safari或Firefox中),或者显示为小方框(在IE和Opera中)。由Microsoft Word生成的HTML文件通常包含许多这样的字符,最常见的是字符代码160 = 0xA0,等效于“&nbsp;”在Windows-1252编码中,通常在跨度标签之间找到,例如:
<span style="mso-spacerun: yes">ááá </span>
我来这里是为了寻找浏览器中显示的JavaScript解决方案,尽管该解决方案与数据库没有直接关系...
就我而言,我将在互联网上找到的一些文本复制并粘贴到一个JavaScript文件中,并使用Windows记事本保存。
[当使用该JavaScript文件的页面输出字符串时,有问号(如问题中显示的问号),而不是带有重音符号的特殊字符等)>
我使用Notepad++
打开了文件。打开文件后,我看到以下屏幕截图中的字符编码设置为Notepad++
(在页脚上的鼠标光标):
<< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS9VeHRYNy5wbmcifQ==” alt =“在此处输入图像描述”>
要解决该问题,请单击ANSI
中的Encoding
菜单,然后选择Notepad++
。你应该很好。 :)
您的浏览器没有正确解释页面的编码(因为您已将其强制设置为特定设置,或者页面设置不正确,因此无法显示某些字符。
这将与字符编码有关。
Unicode或其他字符集字符掉线?
检查镜像服务器发出的字符集。与主服务器之间似乎有所不同-实时站点似乎正在输出Unicode,而镜像没有。此外,通常最好将传入内容中的Unicode字符擦洗,并用适当的HTML实体替换它们。
我通常会诅咒MS单词,然后运行以下Wscript。
我遇到了这个问题,所以我只是拿走了我所有的内容,将其复制/粘贴到记事本中,制作了一个新的php文件,重新粘贴,重新保存和改写,并且..起作用了!确实是Microsoft Word编辑的遗物...