I am trying to insert emoji / emoticons to a SQL Server database but it just stores ???
instead of the emoji / emoticons.
I am finding only help for SQL Server not MySQL.
I tried : link
but not finding answers even not able to set with :
ALTER TABLE mytable charset=utf8mb4,
MODIFY COLUMN textfield1 VARCHAR(255) CHARACTER SET utf8mb4,
MODIFY COLUMN textfield2 VARCHAR(255) CHARACTER SET utf8mb4;
SQL Server does not recognize this command. This is only for Microsoft SQL Server not MySQL
Absolutely it is possible to create your database with any emoji or even display the emoji in your SSMS (SQL Server Management Studio)'s result tab. The simplest possible way is to just type in emoji in the SSMS query window and run the query. It will display the image in the result tab.
Some emojis such as ā” can be stored in MySQL's 3-byte utf8 encoding, but others such as face screaming in fear cannot.
Use nvarchar when the sizes of the column data entries vary considerably. Use nvarchar(max) when the sizes of the column data entries vary considerably, and the string length might exceed 4,000 byte-pairs.
Use NVARCHAR(size)
datatype and prefix string literal with N
:
CREATE TABLE #tab(col NVARCHAR(100));
INSERT INTO #tab(col) VALUES (N'š š š š š š¦ ā š š š š„ š“ š');
SELECT *
FROM #tab;
db<>fiddle demo
Output:
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
ā col ā
ā āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā£
ā š š š š š š¦ ā š š š š„ š“š ā
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
EDIT:
SQL Server 2019 and forward supports UTF-8 collation:
CREATE TABLE t(col VARCHAR(100) COLLATE Latin1_General_100_CI_AI_SC_UTF8);
-- column's data type is VARCHAR!
-- collate could be set on column/database/instance level
INSERT INTO t(col) VALUES (N'ā¢ļø');
SELECT * FROM t;
-- col
-- ā¢ļø
db<>fiddle demo - SQL Server 2019
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With