Today i noticed that html symbols such as: ★ are being displayed in my database as a question mark.
I'm using varchar as type and the database i am using is microsoft sql 2008.
Does anyone know a fix for this?
You need to use NVARCHAR
datatype for your column, VARCHAR datatype can only be use for non-unicode character.
if you are storing unicode characters in your datatype you should use NVARCHAR datatypes and when inserting Data into your Column use the N
prefix telling sql server there will be some unicode characters in the passed string.
With VARCHAR DataType
CREATE TABLE #Temp (Column1 VARCHAR(100))
INSERT INTO #Temp VALUES('★')
SELECT * FROM #Temp
Result
╔═════════╗
║ Column1 ║
╠═════════╣
║ ? ║
╚═════════╝
With NVARCHAR DataType
CREATE TABLE #Tempn (Column1 NVARCHAR(100) )
INSERT INTO #Tempn VALUES(N'★') --<-- N prefix for Unicode Characters
SELECT * FROM #Tempn
Result
╔═════════╗
║ Column1 ║
╠═════════╣
║ ★ ║
╚═════════╝
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