Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Drupal中的表单文本字段标题不接受特殊字符_Php_Html_Drupal_Forms_Hook - Fatal编程技术网

Php Drupal中的表单文本字段标题不接受特殊字符

Php Drupal中的表单文本字段标题不接受特殊字符,php,html,drupal,forms,hook,Php,Html,Drupal,Forms,Hook,我试图使用form_alter hook为drupal表单的元素提供一个包含特殊字符(é,è,è…)的标题 这在表单页面上给了我一个空白输出 对标题使用check_plain()函数不会影响输出:s,仍然为空 我认为这是一个编码问题,但我检查了我所有的enc设置(数据库、服务器、主题模板),它们都设置为utf-8 请注意,当输入包含特殊字符的值时,一切正常。 我认为这里的问题在于Drupal core不接受其#title字段中的特殊字符。首先,您应该在代码中使用英语,然后翻译它 检查该文件的编码

我试图使用form_alter hook为drupal表单的元素提供一个包含特殊字符(é,è,è…)的标题

这在表单页面上给了我一个空白输出

对标题使用check_plain()函数不会影响输出:s,仍然为空 我认为这是一个编码问题,但我检查了我所有的enc设置(数据库、服务器、主题模板),它们都设置为utf-8

请注意,当输入包含特殊字符的值时,一切正常。
我认为这里的问题在于Drupal core不接受其#title字段中的特殊字符。

首先,您应该在代码中使用英语,然后翻译它

检查该文件的编码


如果您在drupal之外尝试它,仅仅是一个普通的PHP打印这些字符的失败,它能工作吗?

我也在french模块中遇到了一些类似的问题。我同意Berdir的解决方案是推荐的,但是如果您真的需要在代码中添加重音符号,您必须首先对文件进行编码

在记事本++中,您可以通过“编码”菜单来实现这一点,选择“编码为UTF-8(无BOM)”并检查文件的右下角以查看其格式,它应该是“ANSI为UTF-8”

删除是非常重要的,因为它会“弄乱”Linux服务器


您尝试过对它们进行编码吗?i、 e.“这是我的标题é;à;test”通过t()传递它有什么作用吗?@ilia@bkildow:我尝试了这两种方法,但都不起作用,我认为我创建的模块有问题,因为我试图使用菜单挂钩测试测试页面的输出,如果页面包含一些特殊字符,则不会显示!可能是模块需要指定自己的编码吗?我正在创建的模块必须是法语,无论我以何种方式尝试此代码:`header('Content-type:text/plain;charset=UTF-8');回音“你好”这就是我得到的:你好������� 而是有8个空白字符:s,我猜这是因为apache服务器配置错误?是的,但您仍然应该用英文编写代码,然后翻译,就像core的其他部分一样。您可以提供一个带有模块翻译的.po文件。不,我不认为这是Apache的问题,这是编辑器/文件系统的问题。你在用什么操作系统?也许您的编辑器在保存时可以选择将其保存为UTF-8。如果您有linux/unix系统可用,请尝试“file yourfile.php”,它应该会打印编码。我使用的是windows xp sp3,当我尝试以下代码时,数据量不允许我用英语编写然后翻译:header('Content-type:text/plain;charset=ISO-8859-15');回声“heloêêêêêêê”;我得到了想要的输出!有没有可能改变Drupal编码的方法?没有。你不应该改变Drupal的编码,这是强迫你使用UTF-8。您需要更改文件的编码。请参阅以了解一些方法。或者使用支持选择编码的编辑器/IDE。
    $form['title'] = array(
          '#type' => 'textfield',
          '#title' => 'this is my title é à test',
          '#required' => TRUE
          );