DATABASE/MSSQL

MS SQL 다국어 처리

publepuble 2018. 12. 5. 10:31

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를 이용하게 됩니다.)
즉, 일반적으로 varchar를 썼을때는 영문은 1byte를 차지하지만 한글은 2byte를 차지한다.
하지만, nvarchar를 썼을때는 영문이든 한글이던 모두 1byte만을 차지하게되어서 효율적이다.



반응형