【问题标题】:CakePHP Console / Shell & special characters (čćčđšž)CakePHP 控制台/Shell 和特殊字符 (čćčđšž)
【发布时间】:2015-02-19 23:56:32
【问题描述】:

由于将网页内容从 Joomla cms 迁移到自定义 cms 中,内置于 CakePHP 2.5.7,我必须清理旧内容,删除大量不必要的 html 标签等等。

我制作了一个简单的 shell 脚本,它从旧数据库中读取数据,处理一些数据并存储在新表中。

它们都有相同的 db encodinig,但是在处理和存储数据时,我失去了克罗地亚语 (čćđš) 的一些特定字符。数据会定期从 Web 界面保存,并且不会丢失这些字符。另外,如果我们通过 phpmyadmin 来完成。

问题出在控制台/shell级别。

我在 shell 脚本中添加了以下行:

$this->out('čćšđČĆŠĐ');

控制台显示如下结果:

─Ź─ç┼í─Ĺ─î─ć┼á─É

如何解决?

谢谢

更新:

操作系统:Windows 7 语言:克罗地亚语

更新 2:

joomla 数据库

cakephp 数据库

core.php

Configure::write('App.encoding', 'UTF-8');

数据库配置

public $default = array(
    'datasource' => 'Database/Mysql',
    'persistent' => false,
    'host' => 'localhost',
    'login' => 'root',
    'password' => '***********',
    'database' => '*********',
    'encoding' => 'utf8',
);

编辑 3

我将代码从控制器的外壳中移出。

测试:

// Read data from joomla db base
$contents = $this->JosContent->find('all');
debug ($contents);

返回错误的结果,不正确显示字母čćđ。

  • 编辑:出于某种奇怪的原因,如果我导入整个 joomla db,ČĆĐŠŽ 字母无法正确显示,但如果我只导入 joomla joscontent db 表,我可以在 html 中正确显示这些字母。

问题仍然存在于控制台中。

【问题讨论】:

  • 您可能想要添加您正在运行的操作系统:)
  • 新数据库连接的“编码”参数是否正确设置为 UTF8(在 database.php 中)?
  • 更新问题。谢谢

标签: php mysql shell cakephp character-encoding


【解决方案1】:
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多