CakePHP控制台/Shell&;特殊字符(č;ć;č;đ;š;ž;)
由于web内容从Joomla cms迁移到定制cms(内置于CakePHP 2.5.7中),我必须清理旧内容,删除大量不必要的html标记等等 我制作了一个简单的shell脚本,它从旧数据库读取数据,处理一些数据并存储在一个新表中 它们都有相同的db encodinig,但在处理和存储数据时,我丢失了克罗地亚语的某些特定字符(ċćđš)。数据定期从web界面保存,并且不会丢失这些字符。另外,如果我们通过phpmyadmin来实现 问题在于控制台/外壳级别 我在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
$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
// Read data from joomla db base
$contents = $this->JosContent->find('all');
debug ($contents);