php - CakePHP 控制台/shell 和特殊字符 (čćčđšž)

标签 php mysql shell cakephp character-encoding

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

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

它们都有相同的数据库编码,但在处理和存储数据时,我丢失了克罗地亚语 (čćđš) 的一些特定字符。数据是定期从网页界面保存的,不要丢失这些字符。另外,如果我们通过 phpmyadmin 来完成。

问题出在控制台/shell 级别。

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

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

控制台显示如下结果:

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

如何解决?

谢谢

更新:

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

更新 2:

joomla 数据库

joomla db

蛋糕数据库

cakephp db

核心.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.

问题仍然存在于控制台中。

最佳答案

关于php - CakePHP 控制台/shell 和特殊字符 (čćčđšž),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27593291/

相关文章:

php - 社交媒体数据库设计: Should user-centric tables be created? 或包含相关数据的主表?

php - 如何在php中重命名上传多个图像并插入数据库?

mysql - 如何将 Grails 3.0 连接到我本地的 Mysql 数据库

bash - 如何在 shell 脚本中的 virtualenv 中运行命令

linux - 如何将 grep 输出的值存储在变量中

javascript - Symfony 3 Infinite Scroll for Announce

php - Mysql Join 两个表获取相关数据

mysql - 何时使用属性 DELAY_KEY_WRITE?

linux - 将多个文件 append 到单个输出文件,但文件之间有消息

php - 根据登录用户的 ID 显示数据库表中的数据