编程语言
首页 > 编程语言> > php-将网页从不同的字符集迁移到UTF-8

php-将网页从不同的字符集迁移到UTF-8

作者:互联网

在过去的几年中,我在Win XP SP2上使用了记事本.
如我所见,记事本中的设置是将“ Windows格式”中的新文件编码为“ ANSI”.基本上,我硬盘上的所有文件都应该是ANSI文件,但是我不确定.
大多数.html文件的字符集标记为“ text / html; charset = iso-8859-1”,但有些文件没有.
我使用Firefox XPCOM系统存储的其他文件,尤其是文本文件(例如,关键字列表),我不知道它们当前的编码方式.

在服务器端,我有带有PHP和MySql的Apache.
对于上载,我使用了Filezilla.

现在的问题是:我想使用日本符号(或阿拉伯语等).这仅部分起作用.
我可以获得自制的Firefox应用程序来不断编写或读取UTF-8.但是我无法每次检查哪个旧文件是哪种编码.

刚读过Joel Spolsky关于UTF-8的旧文章时,我的观点更加强烈,即我只需要尽可能将整个系统更改为UTF-8.
只要我在硬盘上以本地方式运行它,就可以将所有内容重新上传到服务器.

因此:如何将我的所有文件本地传输到UTF-8?
并且:是否有可能在所有地方不断使用UTF-8的Win XP SP2?还是我必须在每个程序中检查它,或者甚至在每个文件中检查它是否使用了正确的编码.
我通过电子邮件或USB记忆棒获得的文件或以zip文件下载的文件怎么样? (或者还有上千种可能性.)

更新:

1.-4.到目前为止一切顺利.我首先尝试使用BOM,但似乎没有更好的选择.
所以到5.)我也必须在那改变.我按3中的方法进行了更改.)html-template-file中的字符集,正确显示了来自模板的文本.但是,来自MySql / Php的文本当前在某些地方(即应该有Umlauteäöü的地方)显示UnknownChar-sign.
我已经通过phpmyadmin将MySql数据库中文本字段的所有排序规则更改为“ utf8_unicode_ci”,但这并不能解决问题.
是php问题,还是我只需要以某种方式转换一次MySql数据库中的数据?

解决方法:

> UTF-8的优点是它是ASCII的超集,因此,如果您的html和php文件仅包含拉丁字母(即英语和编程/ HTML语法),则根本不需要转换文件.您可以保留大部分文件不变.
>如果发现要手动转换的异常很少,则可以在记事本中将其打开,然后执行“编码”-“转换为UTF-8(无BOM)”.
>是的,您确实需要更改/添加< meta> charset标记所有HTML文件,以确保浏览器以UTF-8呈现文件.
>在记事本中,您可以将新文件设置为始终以“ UTF-8(无BOM),Unix”打开.另外,选中“应用于ANSI文件”上的勾号,以便可以将旧文件正确保存为新编码.我建议使用这种格式,因为即使您在Windows机器上工作,Web服务器通常也运行Linux / BSD,所以该格式是本机格式(以本机格式保存文件非常重要,尤其是在使用版本控制系统时).
>使用数据库迁移实时站点是另一个问题. MySQL中的数据带有其自己的编码,因此从您的问题中我无法确定您是否需要这样做以及如何执行.需要更多详细信息(如果需要).

标签:character-encoding,utf-8,migrate,windows-xp,php
来源: https://codeday.me/bug/20191208/2094002.html