我已将VARCHAR(250)
字段的排序设置为utf8_unicode_ci
。我插入我的记录在phpMyAdmin与斯洛伐克字符,之后,当视图回到数据库中,它显示一切都很好。但是当我试图查询并从我的php脚本获得结果时,它向我显示"Pokutovanýsa rozhodne…"。我试图获得返回数据的字符代码,它真的是一个"?"字符,而不是浏览器字符集问题。此外,我也在我的页面"中呼应了这句话。没有成功。你知道怎么解决吗?
我使用CodeIgniter和MySQL。我的配置文件
$config['charset'] = 'UTF-8';
在数据库配置文件中我有
$db['default']['dbcollat'] = 'utf8_unicode_ci';
在控制器中:
class Welcome extends CI_Controller {
function __construct()
{
parent::__construct();
$this->load->library('pagination');
//echo $this->session->userdata('AppLanguage');
$this->config->set_item('language', $this->session->userdata('AppLanguage'));
$this->output->set_header('Content-Type: text/html; charset=utf-8');
}
我在使用CodeIgniter时遇到了类似的问题。在CI_DB_Driver
类(/system/database/DB_Driver.php
)中,有一个db_set_charset()
函数在类初始化时被调用。我注释掉了函数调用,它解决了问题。