Maystyle :
Admin : New post
Guestbook
Local
media
Catergories
Recent Articles
Recent Comments
Recent Trackbacks
Calendar
Tag
Archive
Link
Search
 
  MS SQL 다국어 지원 
작성일시 : 2008. 3. 19. 22:57 | 분류 : SQL Server/Administration

MS SQL에서 유니코드 (다국어)를 사용하기 위해서는 어떻게 해야하나요?

MS SQL에서 다국어를 지원하기 위해서 해당 Table의 칼럼은 nvarchar 또는 nchar 형식으로 저장되어야 합니다.
이때 접두어 'N'은 National을 의미 합니다.

기존의 char 및 varchar과는 어떻게 다른가요?

클라이언트 컴퓨터는 운영 체제의 로컬의 코드 페이지를 사용하여 문자를 나타내는 비트 패턴을 해석합니다.
즉 일반적으로 char 및 varchar를 사용하게되면 로컬 운영체제의 코드 페이지를 참조하여 비트 패턴을 해석합니다.
nvarchar 및 nchar를 사용하면 MS SQL은 문자 인코딩시 UCS-2에 따라 2 Byte (65,536 개의 문자 표현) 를 이용하여 인코딩 합니다. 이를 통해 문자 변환 문제를 최소화 합니다.
(참고 : 유니코드를 위한 가변 길이 문자 인코딩 방식 중 하나인 UTF-8의 경우 문자 한자를 위해 1byte ~ 4btye를 이용하게 됩니다.)

기존에 보이는 아티클 중에는 영문은 2byte, 한글 및 기타 동아시아 언어는 4byte를 이용한다는 것을 본적은 있습니다만 MS 공식 문서 및 제가 확인한 사항이 아니므로 논외로 하겠습니다.


Code Page

nvarchar 는 어떻게 이용하나요?

Table을 만들고 컬럼을 nvarchar로 선언 한 다음 데이터 입력 및 정열 및 Like 구문을 이용한출력을 해보겠습니다.
간체TEST 언어: 虫妇蜡飞书邓谷尘从毙
번체TEST 언어: 蟲婦蠟飛書鄧穀塵從斃

nvarchar 및 nchar 를 이용할 때 주의해야 할 점은 없나요?

위의 insert 구문을 보신 분은 아시겠지만 모든 유니코드 문자열 상수의 접두어로 N 을 선언해 줘야 합니다.
즉 @variable1 = N'abc' 의 형태로 사용해야 합니다.
그와 동시에 ASCII(), CHAR() 함수는 각각 UNICODE(), NCHAR() 로 대체 하여야 합니다.

기존에 varchar(), char() 는 어떻게 변환 하나요?

CONVERT(), CAST() 함수를 이용하여 변환 하면 됩니다.

참고 :
http://technet.microsoft.com/ko-kr/library/ms186939.aspx
http://technet.microsoft.com/ko-kr/library/ms191200.aspx
http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2615325&SiteID=1
http://technet.microsoft.com/ko-kr/library/ms177259.aspx
http://technet.microsoft.com/ko-kr/library/ms187928.aspx

|