gpt4 book ai didi

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

转载 作者:搜寻专家 更新时间:2023-10-31 20:53:49 25 4
gpt4 key购买 nike

过去几年,我在 Win XP SP2 上使用 Notepad++。正如我刚刚看到的,Notepad++ 中的设置是将新文件编码为“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?并且:是否有可能让 Win XP SP2 在任何地方都不断使用 UTF-8?或者我是否必须检查每个程序,甚至更糟的是检查每个文件,以确保使用正确的编码。例如,我通过电子邮件或通过 USB 内存棒获得的文件,或者我下载的 zip 文件中的文件怎么样? (或更多的一千种可能性。)

更新:

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

最佳答案

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

关于php - 将网页从不同的字符集迁移到 UTF-8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4813531/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com