【问题标题】:Using Cakephp Forms with special character encoding使用带有特殊字符编码的 Cakephp 表单
【发布时间】:2012-11-21 17:54:29
【问题描述】:

我开始使用 cakephp,但我仍有一些疑问。正是关于 .ctp 文件。经过研究,我发现它们是用于 phpcake 读取 php 代码的模板文件。但是编码呢。我在一个带有“Utf-8 without bom”编码的文件中测试了这段代码,但浏览器仍然无法识别以下示例中包含的“ç”或“ã”之类的字母:

<!-- File: /app/View/Posts/add.ctp -->

<h1>Add Post</h1>
<?php
echo $this->Form->create('Post');
echo $this->Form->input('Nome Produto');
echo $this->Form->input('Código Produto');
echo $this->Form->input('Versão');
echo $this->Form->input('Data');
//echo $this->Form->input('body', array('rows' => '3'));
echo $this->Form->end('Criar Ficha');
?>

我需要在这个 ctp 文件中添加一些特定的配置以避免这种编码问题?

附:问题解决了。表单->输入创建错误。应该是:

echo $this->Form->input('cod_produto', array('label' => 'Código Produto:'));

因为第一个参数是bd中的字段名。感谢马克的所有帮助!

【问题讨论】:

  • 您应该只使用 a-zA-z0-9_ 作为数据库字段名称! input() 的第一个参数是字段名称。

标签: php cakephp character-encoding


【解决方案1】:

尝试将以下行放入您的default.ctp 模板文件(或您的整个网站正在使用的任何模板文件)。无论您在哪个页面上,这都应该设置整个网站的编码:

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

【讨论】:

  • 我在文件夹视图/布局中查看了 default.cpt 文件,我有以下行: Html->charset(); ?> 应该根据书蛋糕上所说的内容来做到这一点。
  • 在浏览器中查看您的 HTML 源代码,并仔细检查元标记是否实际打印出来。
  • 它是: CakePHP:快速开发的php框架: 帖子
  • @user1511579 我刚刚更新了我的答案。尝试使用iso-8859-1 编码而不是UTF-8。我只是将您的代码复制并粘贴到一个开发项目中,它可以工作。
  • 仍然无法正常工作。嗯,我会检查一下,我一定做错了什么,即使我猜想 utf8 应该可以工作:/
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-11
  • 1970-01-01
  • 2011-02-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多