앞 장에서도 말했듯이, 율토리는 가난한 촌마을이다 ㅠ_ㅠ
지난번 포스팅에서 DB (MysSQL / MariaDB) 에 이모티콘을 저장하는 방법을 포스팅하였다.
☞ MySQL · MariaDB 에 이모티콘 저장하러가기
그런데, 이 데이터를 DB에서 가지고 올때, PHP 에서도 처리해줄 것이 있다.
그렇지않으면 DB에는 이모티콘이 잘 저장되어있는것을 볼 수 있으나,
웹 페이지에서는 ? 로 표시되게 된다ㅋ
방법은 간단하다.
PHP 에서도 DB로 Connection 할때 Character Set을 맞춰서 통신해주어야 한다.
방법 1. 보통 regacy code 에서 사용 되는 mysqli (또는 mysql) lib function 사용.
## mysqli library function
mysqli_set_charset($conection,"utf8mb4");
mysqli_query("SET collation_connection = 'utf8mb4_unicode_ci'");
## OR
mysqli_query($conection, "SET NAMES 'utf8mb4' COLLATE 'utf8mb4_unicode_ci';");
방법 2. Query 로 실행.
## charset setting query
SET NAMES utf8mb4;
## collation setting query
SET COLLATION_CONNECTION = 'utf8mb4_general_ci';
방법 3. CI 사용시 - database 설정 페이지에서 setting.
$db['default'] = array(
'dsn' => '',
'hostname' => '호스트명',
'username' => '계정',
'password' => '패스워드',
'database' => 'DB명',
'dbdriver' => 'mysqli',
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => (ENVIRONMENT !== 'production'),
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8mb4',
'dbcollat' => 'utf8mb4_unicode_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array(),
'save_queries' => TRUE
);
* collation 을 설정하지 않아도 character_set 만 utfmb4로 설정해주어도 이모티콘이 정상적으로 표시되긴 한다.