While having properly defined database elements, you have to also set your connection to use UTF-8 ecoding. As of Phalcon makes use of PDO, you can try to modify your connection alike to:
$di["db"] = function() {
return new \Phalcon\Db\Adapter\Pdo\Mysql(array(
"host" => "localhost",
"username" => "root",
"password" => "1234",
"dbname" => "test",
"options" => array( // this is your important part
PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'
)
));
};
Example from Phalcon Forum.
As of I'm working with Polish language, my DB collations are mostly set to utf8_polish_ci
or sometimes to utf8_universal_ci
. You have to test it out because of result sorting issues.