2012-11-19 1 views
0

다음 문제는 데이터베이스에서 데이터를 가져올 때 모든 것이 정상이지만 데이터베이스에 특수 기호가있는 데이터를 쓸 때 특수 기호가 코딩된다는 것입니다.CodeIgniter 2.1.3 및 mssql 2008 데이터 정렬

ex. 내가 이름 (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; 

당신이 나타났습니다로 m y 데이터베이스 데이터 정렬은 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 문에 넣고 값을 반환합니다.

답변

1

, 여기에 솔루션입니다. 매력처럼 작동합니다.

0

CodeIgniter (2.1.3)는 'mssql'드라이버의 문자 집합을 처리하지 않습니다. 당신은 이런 일을 설정할 수 있습니다 : 나는

$newname = html_entity_decode($oldname); 

을 사용했습니다

그리고 삽입 $의 newname의 : 지금까지 사람이 같은 문제에 직면하게 될 것이다

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

감사합니다.이 줄은 어디에 써야합니까? – Juzt1s

+0

특수 문자를 포함하는 쿼리 이전 인 경우에는 중요하지 않습니다. – Narf

+0

감사합니다 !!! 그것은 나를 많이 도왔다. 너는 생명의 은인이야. 그러나 점만 제대로 작동하는 것처럼 보입니다.()은 ( ) – Juzt1s