Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/279.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
CakePHP控制台/Shell&;特殊字符(č;ć;č;đ;š;ž;)_Php_Mysql_Shell_Cakephp_Character Encoding - Fatal编程技术网

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

CakePHP控制台/Shell&;特殊字符(č;ć;č;đ;š;ž;),php,mysql,shell,cakephp,character-encoding,Php,Mysql,Shell,Cakephp,Character Encoding,由于web内容从Joomla cms迁移到定制cms(内置于CakePHP 2.5.7中),我必须清理旧内容,删除大量不必要的html标记等等 我制作了一个简单的shell脚本,它从旧数据库读取数据,处理一些数据并存储在一个新表中 它们都有相同的db encodinig,但在处理和存储数据时,我丢失了克罗地亚语的某些特定字符(ċćđš)。数据定期从web界面保存,并且不会丢失这些字符。另外,如果我们通过phpmyadmin来实现 问题在于控制台/外壳级别 我在shell脚本中添加了以下行: $t

由于web内容从Joomla cms迁移到定制cms(内置于CakePHP 2.5.7中),我必须清理旧内容,删除大量不必要的html标记等等

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

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

问题在于控制台/外壳级别

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

$this->out('čćšđČĆŠĐ');
控制台显示以下结果:

─Ź─ç┼í─Ĺ─î─ć┼á─É
如何解决这个问题

谢谢

更新:

操作系统:Windows7 语言:克罗地亚语

更新2:

乔姆拉酒店

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

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

测试:

返回错误结果,无法正确显示字母čćđ

  • 编辑:出于某种奇怪的原因,如果我导入整个joomla db,ĆĐŽŽ字母不会正确显示,但如果我只导入joomla Jos db内容表,我可以在html中正确显示这些字母

问题仍在控制台中。

将控制台编码设置为UTF8


您可能需要添加正在运行的操作系统:)新数据库连接的“encoding”参数是否正确设置为UTF8(在database.php中)?更新问题。谢谢
// Read data from joomla db base
$contents = $this->JosContent->find('all');
debug ($contents);