Reputation: 136
I want to store special character in database vice versa like emotive but when I try to save in database I get question marks.
Upvotes: 6
Views: 10406
Reputation: 39
One of the best and easiest way is to change your charset to utf8mb4
charset => utf8mb4
Upvotes: -1
Reputation: 200
If you are using websocket for chat and sending Emoticons, then you have to restart the websocket.
You can find and kill all the websocket processes like
sudo kill (Your PID)
without the round brackets.
And for the ? Marks, it's okay because some browsers, or MySQL editors not supporting Emoticons, so they show you questions (?) marks.
Upvotes: 0
Reputation: 80
In addition to the answers above, make sure to clear cache and migrate refresh to update the MySQL tables.
Upvotes: 2
Reputation: 2117
1) Ensure you're using MYSQL 5.5.3 or later then will you be able to change the collation to utf8mb4_something,
2) Ensure table columns that are going to receive emoji have their collation set to utf8mb4_something
if still you have issue, then Edit your database.php config file and update following,
'charset' = 'utf8mb4';
'collation' = 'utf8mb4_unicode_ci'
Upvotes: 3
Reputation: 7535
In your database.php
file, make sure to set the charset
and collation
to utf8mb4
:
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', 'localhost'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
And your emoji column should be a String:
$table->string('emoji');
Upvotes: 19