然后我遇到的问题是当我从数据库中获取数据时一切都很好,但是当我用特殊符号向数据库写入数据时,我会得到特殊的符号编码。
离。当我写名称(1.5),即时,我得到名称(1.5&#4 1;,即(没有空格)。但是当我从数据库基础上获取所有内容时很好,名称(1.5),即显示。
问题是我使用特殊符号搜索不起作用。
这是配置。 database.config:
$active_group = 'default';
$active_record = TRUE;
$db['default']['hostname'] = '10.87.4.147';
$db['default']['username'] = 'sa';
$db['default']['password'] = 'Q!w2e3r4';
$db['default']['database'] = 'rrr';
$db['default']['dbdriver'] = 'mssql';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = FALSE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = '';
$db['default']['char_set'] = 'latin1';
$db['default']['dbcollat'] = 'latin1_general_ci';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;
您已经注意到我的数据库归类是 SQL_Latin1_General_CP1_CI_AS 。
我已尝试将值设置为:
$db[‘default’][‘char_set’] = ‘utf8’;
$db[‘default’][‘dbcollat’] = ‘utf8_general_ci’;
和
$db[‘default’][‘char_set’] = ‘utf16’;
$db[‘default’][‘dbcollat’] = ‘utf16_general_ci’;
任何想法如何使用特殊符号写入数据或让我的搜索工作。搜索很简单,我得到字符串,把它放在SQL LIKE语句中并返回值。
答案 0 :(得分:1)
如果有人遇到同样的问题,这就是解决方案:
我用过
$newname = html_entity_decode($oldname);
然后插入$ newname。像魅力一样。
答案 1 :(得分:0)
CodeIgniter(2.1.3)不处理'mssql'驱动程序的字符集。您可以设置如下:
@ini_set('mssql.charset', 'utf-8');