由于在 CakePHP 2.5.7 内置的自定义 cms 中从 Joomla cms 迁移了网页内容,我必须清理旧内容,删除大量不必要的 html 标签等。
我制作了一个简单的 shell 脚本,它从旧数据库中读取数据,处理一些数据并将其存储在一个新表中。
它们都有相同的数据库编码,但在处理和存储数据时,我丢失了克罗地亚语 (čćđš) 的一些特定字符。数据是定期从网页界面保存的,不要丢失这些字符。另外,如果我们通过 phpmyadmin 来完成。
问题出在控制台/shell 级别。
我在 shell 脚本中添加了以下行:
$this->out('čćšđČĆŠĐ');
控制台显示如下结果:
─Ź─ç┼í─Ĺ─î─ć┼á─É
如何解决?
谢谢
更新:
操作系统:Windows 7 语言:克罗地亚语
更新 2:
joomla 数据库
蛋糕数据库
核心.php
Configure::write('App.encoding', 'UTF-8');
数据库配置
public $default = array(
'datasource' => 'Database/Mysql',
'persistent' => false,
'host' => 'localhost',
'login' => 'root',
'password' => '***********',
'database' => '*********',
'encoding' => 'utf8',
);
编辑 3
我将代码从 Controller 的 shell 中移走了。
测试:
// Read data from joomla db base
$contents = $this->JosContent->find('all');
debug ($contents);
返回错误结果,不正确显示字母čćđ。
- edit: For some strange reason, if I import the whole joomla db, ČĆĐŠŽ letters are not displayed correctly, but if I import only joomla joscontent db table, I have properly display of these letters in html.
问题仍然存在于控制台中。
最佳答案
将控制台编码设置为 UTF8。
关于php - CakePHP 控制台/shell 和特殊字符 (čćčđšž),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27593291/