【问题标题】:CodeIgniter 2.1.3 and mssql 2008 collationCodeIgniter 2.1.3 和 mssql 2008 排序规则
【发布时间】:2012-11-07 03:23:42
【问题描述】:

然后我遇到的问题是,当我从数据库中获取数据时一切都很好,但是当我将带有特殊符号的数据写入数据库时​​,我得到了特殊符号的编码。

例如。当我写 name (1.5), ie 我得到 name ( 1.5 & # 4 1 ; , ie (不带空格)。但是当我从数据库中获取时,一切都是罚款和名称(1.5),即显示

问题是我的特殊符号搜索不起作用。

这里是配置。 数据库配置:

$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 语句中并返回值。

【问题讨论】:

    标签: php database codeigniter collation


    【解决方案1】:

    如果有人遇到同样的问题,这里是解决方案:

    我用过

     $newname = html_entity_decode($oldname);
    

    然后插入$newname。像魅力一样工作。

    【讨论】:

      【解决方案2】:

      CodeIgniter (2.1.3) 不处理“mssql”驱动程序的字符集。你可以这样设置:

      @ini_set('mssql.charset', 'utf-8');
      

      【讨论】:

      • 谢谢,我应该把这行放在哪里?
      • 只要是在包含特殊字符的查询之前——没关系。
      • 谢谢!!!这对我帮助很大。你是一个救生员。但是,似乎只有点才能正常工作。 () 存储为 ( )
      • 这与字符集无关,请参阅我在 CodeIgniter 论坛帖子上的回复(请只选择一个地方提问:))。
      猜你喜欢
      • 2011-05-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-27
      • 1970-01-01
      • 2016-02-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多