【问题标题】:Php: Reading special characters in a variable from a required filePhp:从所需文件中读取变量中的特殊字符
【发布时间】:2012-12-08 12:33:50
【问题描述】:

共有三个文件:index.php、config.php和[语言前缀].php。

索引设置基本设置(如包含路径)并将控制权传递给“config.php”。

Config 设置了很多东西,包括语言,当它知道语言时,它需要语言文件。

语言文件存储一些用于静态翻译的变量(如 $menu=array('foo','bar','etc');)

我已经完成了所有工作并测试了所有内容(本地),但是当我上传到服务器时,每个包含特殊字符(如 áéíóúâêîôû 等)的变量都在 index.php 外部声明(在 config.php 或语言文件)导致无效字符(�),但如果我在索引中声明它,字符会正常显示。

由于它在本地工作,我假设它应该是由于服务器设置。应该是什么问题? (我有 UTF-8 标头,文件是 UTF-8 编码的)

更多信息: 我有一个脚本可以跨语言翻译日期,但它有正确打印的“Sábado”之类的词。脚本本身包含在模板中,但变量是在同一个文件中设置和使用的。可以要求更改文件的编码吗?

【问题讨论】:

  • 你的实际配置文件的编码是什么[我不是指标题编码] 你的 index.php 文件可能有正确的编码,但配置文件可能没有。根据您的代码编辑器,您也许可以将其他文件提升为 utf-8
  • 我已经使用 VIM 或 gedit 编辑了所有文件。 (我相信默认一切都为 UTF-8/ascii)。 Cpanel 文件管理器还将文件识别为 UTF-8。如果它们没有被编码为 UTF-8,我怎么能在本地看到所有内容?
  • 不太确定我理解你的最后一个问题,但是,我要做的是进入 cpanel,复制 config.php 的内容,删除文件,复制 index.php,将其重命名为 config。 php,然后将内容粘贴回去。既然您知道 index.php 是正确的编码。
  • 我只是说文件没问题(正确的编码)。请阅读我添加到问题中的信息。这个问题似乎与其他文件中使用的变量有关,但我不确定也不知道为什么。

标签: php global-variables


【解决方案1】:

保存编码为 utf-8 的文件,将页面字符集设置为 utf-8,如果有来自 db 的数据,也将连接设置为 utf-8。

【讨论】:

    【解决方案2】:

    使用可以将编码指定为 UTF-8 的文本编辑器。我使用文本板。我还发现使用 TextPad 保存时,需要将文件格式指定为 UNIX 而不是 PC。我不使用 TextPad 进行主要编辑,但它对于指定编码很有用。

    更新:我最近发现 TextPad 不能很好地处理 UTF-8 编码,所以我切换到了 Notepad++。从 TextPad 切换到 Notepad++ 后,我遇到了另一个编码问题。

    【讨论】:

    • 我不需要这样的编辑器,我使用 GNU/Linux,所以我所有的编辑器都默认使用 UNIX。这些文件也被编码为 UTF-8。
    • 另一种可能性是正在执行您的 FTP 传输的程序。您如何将文件发送到服务器?
    • 通过 FileZilla。可能你知道你在说什么,但我看不出改变编码的意义。在 cpanel 下,编码显示为 UTF-8,因此没有任何变化。
    • 故障排除的重点是探索所有可能性。如果我正在探索死胡同,我很抱歉。 FileZilla 在传输文件方面做得很好,但我知道有些人仍然使用过时的上传方法。
    • 如您所说,它可能是服务器配置。在文件 httpd.conf 中有一行指定编码:AddDefaultCharset UTF-8。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-08
    • 2015-01-28
    • 1970-01-01
    • 1970-01-01
    • 2017-10-02
    • 1970-01-01
    相关资源
    最近更新 更多