이것은 내 머리를 감싸는 순수한 이론적 인 질문이다.varchar 열에 정렬되지 않은 유니 코드 (UTF-16) 데이터는 어떻게 저장됩니까?
나는 Unicode
사이클론 (1F300
) 기호를 가지고 있다고 가정 해 보자.
-
: 나는 기본적
- 자바 스크립트는 기본 평면 (BMP)의 기호에서 2 기호 (서로 게이트 쌍)로 저장하는 기호와 같습니다. put them back together ...
- 기호를 자르고 첫 번째 바이트를 저장하고 두번째 .... (데이터는 토스트입니다 - 설명서를 읽었어야합니다 ....)
- 데이터가 파괴되어 사용법이 저장되지 않습니다. (데이터는 토스트입니다 - 매뉴얼을 읽어야합니다 ....)
- 내 정신 능력 밖에있는 다른 옵션 .....
Latin1_General_CI_AS
정렬을 사용
varchar
컬럼에 저장하려고하면, 사이클론 기호 내가이 짓을 볼 수 있습니다
방법을 varchar
에 기호에 따라 사용되는 한 바이트 ...에 맞지 않을 수 없습니다
나는 다른 유니 코드 문자
INSERT INTO [Table] (Field1)
VALUES ('')
INSERT INTO [Table] (Field1)
VALUES ('')
의 몇 가지를 삽입하고 내가
0x3F3F
가지고 두 경우 모두 바이트
SELECT cast (field1 as varbinary(10))
로를 읽은 후 몇 가지 조사를 수행했다.
ascii
에서
3F
정상적인 일을 select *
는 그 데이터가 토스트하고도 1 바이트가 저장되어 있지 의미합니까 때 나는 또한 볼 ?
(question mark) 예 : 두 개의 물음표 (??
)인가?
varchar 열에 정렬이 아닌 유니 코드 데이터가 저장되는 방식은 무엇입니까?
안녕하세요, Alex, 답변 해 주셔서 감사합니다. 나는 왜''대신''??''이 부상, 폭력에 대한 모욕처럼 느껴지는지 궁금합니다. –