mysql 이랑 연동하는데 한글이 깨져서 나옵니다.
mysql에 직접 콘솔로 접속해서 한글 데이터를 넣고 select를 해보거나, 웹페이지에서 한글 데이터를 DB에 인서트 한 이후 select로 확인해도 한글이 전부 ????로 나옵니다.
여러군데 돌아다니면서 my.ini 파일을 고쳐보기도 하고 별짓을 다했는데.. 아무리 해도 한글이 전부 ????로 뜨네요..
아래는 제 database.php 입니다
$active_group = 'default';
$active_record = TRUE;
$db['default']['hostname'] = 'localhost';
$db['default']['username'] = 'root';
$db['default']['password'] = 'apmsetup';
$db['default']['database'] = 'test';
$db['default']['dbdriver'] = 'mysql';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = '';
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;
====================my.ini===================
# The MySQL server
[mysqld]
default-character-set = utf8
port = 3306
skip-locking
key_buffer_size = 16M
max_allowed_packet = 1M
table_open_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
skip-innodb
# The following options will be passed to all MySQL clients
[client]
default-character-set = utf8
port = 3306
[mysqldump]
default-character-set = utf8
quick
max_allowed_packet = 16M
[mysql]
default-character-set = utf8
no-auto-rehash
# Remove the next comment character if you are not familiar with SQL
#safe-updates
계정 설정이 UTF-8 로 돼있으면 mysql client character set 문제일 것 같기도 하네요.
아래 명령어로 "Client characterset" 이 설정값을 확인해보세요.
위 결과가 UTF8 이 아닐경우 처리 방법은 다음과 같습니다.
1. my.cnf 수정 권한이 있을 경우
아래 설정은 클라이언트 인코딩은 무시하고 서버 인코딩을 적용하는 설정입니다.
2. my.cnf 수정 권한이 없을 경우