포럼
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
DB를 mssql 사용시 한글 문제
2014.04.09 23:28
@카르마 님의 통합검색 확장모듈을 테스트 하면서 알게된 사실인데 mssql사용자인 경우 php에서 직접 쿼리를 날릴때 조건문에 한글이 포함되어 있으면 올바른 결과를 얻지 못하더군요. 물론 영문일경우 아무 문제가 없습니다.
select TOP 10 keyword, count(*) as count from xe_search where keyword like '%테%' group by keyword order by count desc
- 이와 같은 쿼리문을 날렸을경우 이에 해당하는 컬럼이 존재해도 전혀 결과를 산출해내지 못합니다.
이를 해결하기 위해서 db커낵션 부분에 'CharacterSet' => 'UTF-8' 구문을 추가해 줘야 할꺼 같습니다. 해당 구문을 추가해주면 조건문에 한글이 포함되어 있어도 정상적인 결과를 얻을 수 있습니다.
./classes/db/DBMssql.class.php
$result = @sqlsrv_connect($connection["db_hostname"], array('Database' => $connection["db_database"], 'UID' => $connection["db_userid"], 'PWD' => $connection["db_password"], 'CharacterSet' => 'UTF-8'));
댓글 3
-
LI-NA
2014.04.09 23:36
-
키스투엑스이
2014.04.09 23:52
요즘도 EUR-KR서버 쓰시는분 계셨나요? 대세는 UFT8 ! ....
일단 XE 이슈로 등록해보시길..
-
prologos
2014.04.10 00:32
@LI-NA
@키스투엑스이
헛! mssql도 다른 db처럼 기본 characterset을 utf-8로 설정할 수 있나요??
다국어 사용할때는 컬럼을 nvarchar, nchar등의 유니코드형으로 생성해서 사용하는거 아니었습니까?
흠... 저는 기본적으로 UTF-8을 이용하고 있어서 몰랐군요...
제가 알기ㅗ XE 권장사항이 UTF-8입니다만, 해당 부분은 XE 이슈로 올려보시기 바랍니다.