Database Administrators Stack Exchange is a question and answer site for database professionals who wish to improve their database skills and learn from others in the community. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I can't find option(s) directly to set UTF-8 rellated Collations/Charsets in SQL Server 2005/2008, same as is possible to set in another SQL engines, but in SQL Server 2005/2008 are there only Latin and SQL collations.

Is there some option to force/install these collations / charsets in SQL Server engine (for both ver.) 2005/2008 on Win2008 OS

share|improve this question
up vote 10 down vote accepted

No, there isn't. SQL Server doesn't support UTF-8.

You need to define your columns as nvarchar/nchar if you want unicode data. Note, internally SQL Server stores this as UCS-2.

Note that this has ben requested from MS on Connect and there is an older KB article. And some info on this blog too

share|improve this answer
5  
additionally, if you're going to be doing any text matching on an nvarchar with foreign characters, you need to match on a string formatted with an N before the string (e.g. N'οἰκονόμον'). – swasheck Mar 9 '12 at 17:31
    
Has this behaviour changed in any recent release of SQL server? – Seiyria Jan 28 '15 at 19:54
    
@Seiyria: no, same behaviour – gbn Jan 29 '15 at 7:34

I my case, I had to display Arabic characters and my development database was in 2014, here things worked well. Here, in query I could see Arabic chars and my collation was SQL_Latin1_General_CP1256_CI_AS

But my production was in SQL server 2008 and eventually it din't supported UTF-8 charset. Here, I could see all ??????????? as UTF-8 is not supported in SQL 2008.

What all I did is changed all varchar to nvarchar and I could see Arabic char properly. Also I change my 2008 database collation to SQL_Latin1_General_CP1256_CI_AS

share|improve this answer
    
Hi Halim, welcome to DBA stack exchange. please post a new question, and link this one if they have similar information about your issue. thanks – Ahmad Abuhasna Jan 6 at 13:51

You can't install UTF-8 as a character set because it's not a character set, it is an encoding.

If you want to store Unicode text you use the nvarchar data type.

If you want to store text encoded using UTF-8, you store it as binary data (varbinary).

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.