본문 바로가기
🎪 놀고있네/MS SQL

[SQL Server] 글자가 입력은 되는데 저장이 안되요! 😒

by 냥장판 2019. 12. 9.

목표: 글자가 입력은 되는데 저장이 안되는 현상의 원인을 파악해보자

요약

  1. 데이터 형식 확인하기
  2. Unicode 형식으로 입력 받는지 확인

 

이런 경험이 있을거다.

이모티콘까지 열심히 써가면서 글을 작성했는데, 저장을 누르고 보니 내가 입력한 이모티콘이 다 사라진 경우.

그래서 난 상냥하게 글을 작성했는데, 저장된 내 글은 완전 진지하고 근엄해진 경우.

 

입력할 때는 잘만 되던 문자들이 왜 저장하니까 사라지나!!!

 

Database 관점에서 이를 분석하고 해결방법을 찾아보겠다.

 

 

 

티스토리 QA가 이 글을 봤으면 좋겠다!!!!

티스토리를 예로 설명을 하겠다.

 

영상을 꼭 봤으면 좋겠다.

 

 

난 분명 아래그림처럼 입력을 했다.

입력할 때는 잘 나오던 이모티콘인데,

 

이게 도대체 뭔가!! 

왜 저렇게 저장이 되는것인가!!!

 

티스토리 QA 일해라앗! (제 직장과 티스토리는 관계가 없어요;)

 

 

1. 데이터 형식 확인하기

2019/12/06 - [놀고있네/MS SQL] - [SQL Server] varchar, nvarchar 뭘 사용해야 하죠?

 

데이터 형식 중 흔하게 사용하는 varchar과 nvarchar이 있다.

 

영어나 라틴 문자열을 입력했을 때는 제대로 출력될 수 있으나,

한글, 한자를 입력했을 때 제대로 출력이 되지 않는다면

 

혹시 내가 varchar 을 사용하고 있지 않는지 확인한다.

 

2. Unicode 형식으로 입력 받는지 확인

 

문제에 대한 해답을 인코딩, Unicode로 떠올렸다면, 당신은 천재? 👍

 

2019/11/28 - [놀고있네/i18n] - [Characters] 글자가 깨져요

 

그런데 nvarchar로 데이터 형식을 정확히 지정했는데도 입력이 되지 않는다면?

 

일부러 11번 째에서 nvarchar 데이터 형식을 지정해놓은 character_NVC 컬럼에

앞에 N을 붙인 Unicode 형식

Unicode 형식이 아닌 

 

일반 입력 형식대로 문자열을 입력했을 때

아래와 같은 결과가 나온다.

 

 

데이터 형식이 올바르게 설정이 되어 있더라도

Unicode 형식에 맞게 입력받는지 확인이 필요하다.

 


 

 

댓글