【问题标题】:PHP - charset for variables and includePHP - 变量和包含的字符集
【发布时间】:2013-08-16 15:03:12
【问题描述】:

我已经查看了现有的答案,但我无法找到这种具体情况。如果我弄错了,请告诉我。

我最近开始使用 PHP。我已经创建了结构和一切都没有问题

小米索引就是这样的index.php,它的创建包括:

标题

内容

页脚

我想让它成为多语言并且我正在创建文件以便我可以定义变量

 $lang['TITLE'] = 'Título';

我使用echo 来显示这些变量并且它们显示没有问题,即使使用特殊字符,例如 Título 但目前我正在使用include 加载文件content.html,我遇到了这样的编码错误:

interés - interés búsquedas - búsquedas

换句话说,当从echo 语句创建文本时,一切都会正确显示,但使用include 加载文件时,只有包含文件显示错误。

我已经尝试了很多方式使用CHARSET,但是,无论是回显结果不正确还是包含结果不正确。

我尝试的最后一件事是将服务设置为使用 mb_ 标准化 UTF-8 编码,但这样它只是不显示特殊字符

inter é s = inters

非常感谢,请告诉我我的错误是什么或我该怎么办。

【问题讨论】:

  • 我们需要更多信息。首先,您在哪里更改字符集?数据是否存储在数据库中并被检索?如果您不更改 HTML 页面上的字符集,则需要使用 META 标记进行更改。如果您使用的是数据库,则数据库还需要具有相同的字符集,并且很可能需要重新插入数据。如果您通过页面输入字段以发布到数据库,则该页面也需要具有相同的字符集。

标签: php variables character-encoding include


【解决方案1】:

include 文件或echo 文本没有任何区别。 PHP 在这些操作中不做任何编码转换或以任何方式处理编码。它所做的只是直接输出源代码中的原始文本,原封不动。

如果一个文件中的文本有效而另一个文件无效,这意味着这些文件的编码方式不同。在文本编辑器中以相同的编码保存它们。

可能您在这两个文件中输出不同的Content-Type 标头,作为 HTML 标记或其他形式。检查那个遥远的可能性。

如果您需要更多信息,请参阅 What Every Programmer Absolutely, Positively Needs To Know About Encodings And Character Sets To Work With TextHandling Unicode Front To Back In A Web App

【讨论】:

  • 非常感谢。它成功了。我不知道发生了什么。解决方案正是从文本编辑器中对文件进行编码。我编辑了一个现有文件,可能是我在翻译文档时忘​​记更改编码。我真的很感谢您的快速反应
猜你喜欢
  • 2023-03-27
  • 2016-06-13
  • 1970-01-01
  • 2011-10-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多