3

在过去的几年里,我在 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-sign,即应该有 Umlaute äöü 的地方。我已经通过 phpmyadmin 将 MySql-Database 中文本字段的所有排序规则更改为“utf8_unicode_ci”,但这并没有成功。这是一个 php 问题,还是我只需要以某种方式转换 MySql-Database 中的数据一次?

4

1 回答 1

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