CakePHP控制台/ Shell&特殊字符(čćčđšž)

时间:2014-12-21 20:08:15

标签: php mysql shell cakephp character-encoding

由于在 CakePHP 2.5.7 内置的自定义cms中从Joomla cms迁移Web内容,我必须清理旧内容,删除大量不必要的html标签等等。 / p>

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

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

问题是控制台/ shell级别。

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

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

控制台显示以下结果:

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

如何解决这个问题?

由于

更新

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

更新2:

joomla db

joomla db

cakephp db

cakephp db

core.php中

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

db config

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

编辑3

我从控制器中的shell移动了代码。

试验:

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

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

  
      
  • 编辑:由于一些奇怪的原因,如果我导入整个joomla数据库,ČĆĐŠŽ字母显示不正确,但如果我只导入joomla joscontent db表,我已正确显示这些字母的HTML。
  •   

问题仍在控制台中。