我创建了一个简单的shell脚本,它从旧数据库中读取,处理一些数据并存储在新表中。
它们都具有相同的db编码,但在处理和存储数据时,我会丢失一些克罗地亚语的特定字符(čćđš)。数据定期从Web界面保存,不会丢失这些字符。另外,如果我们通过phpmyadmin进行。
问题是控制台/ shell级别。
我在shell脚本中添加了以下行:
$this->out('čćšđČĆŠĐ');
控制台显示以下结果:
─Ź─ç┼í─Ĺ─î─ć┼á─É
如何解决这个问题?
由于
更新
操作系统:Windows 7 语言:克罗地亚语
更新2:
joomla 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。
问题仍在控制台中。