최근 업데이트:2017-09-14
출처: 인터넷
작성자: 사용자
키워드:
네트워크 프로그래밍
MSSQL 자습서
MSSQL 한자 처리 (문자 인코딩 집합 및 데이터 정렬) SQL 서버 중국 처리 포함 문자 집합 코딩 및 정렬 규칙, 매우 얽힌된 문제입니다.
SQL 코드
--ascii 문자
선택 = 캐스트 (이진 (2) n) x N U n 사이 고 126 Nums에서 nchar (n) =
--unicode 한자
선택 = 캐스트 (이진 (2) n) x N U n 19968 40869
사이 Nums에서 nchar (n) =
19968 0x4e00
40869 0x9fa5
--The 두 가지 조건에 따라 한자
는 문자열에 포함 되어 있는지 확인 하는 데 사용 됩니다.
n '% [-] %'와 같은
chinese_prc_ci_as
대조
같은 n '[a-] % %' 대조 chinese_prc_bin
-This 중국 문자의 순서 정렬 규칙의 위 2 개의 종류에서 다른 때문입니다.
--Chinese 전체 각도 문장 부호
선택 = 캐스트 (이진 (2) n) x N 정리 nchar (n), 유비 = 65281 및 65374
사이의 n Nums에서 nchar (n-65248) =
선택 NCHAR (12288), nchar (32)
65281 0xff01!!
65374 0xff5e ~ ~
--The 조건 다음 전각 문장 부호
는 문자열에 포함 되어 있는지 확인 하는 데 사용 됩니다.
n 같은 ' % [! -~] % ' Chinese_prc_bin
대조
전각 문장 부호의 변환:
SQL 코드
--full2half
함수 [dbo]를 만듭니다. [Full2half] (
@string nvarchar (max)
)
는 nvarchar (max)
를 반환합니다.
로
/*
가득 차 있는 각 (전자) 반-폭 (반폭)
로 변환
*/
시작
는
선언 @chr nchar (1)
@i int
선언
세트 @string = 바꾸기 (@string, n ', n')
설정 @i = Patindex (n ' % [! -~] % ' 대조 Latin1_General_BIN, @string)
@i > 0
동안
시작
는
세트 @chr (@string, @i, 1) 문자열을 =
세트 @string 바꾸기 (@string, @chr, nchar (유니코드 (@chr)-65248)) =
설정 @i = Patindex (n ' % [! -~] % ' 대조 Latin1_General_BIN, @string)
끝
는 @string
반환
끝
가
함수 [dbo]를 만듭니다. [Half2full] (
@string nvarchar (max)
)
는 nvarchar (max)
를 반환합니다.
로
/*
절반 각도 (반폭) 전체 변환할 각도 (전자)
*/
시작
는
선언 @chr nchar (1)
@i int
선언
세트 @string = 바꾸기 (@string, n ', n')
세트 @i = Patindex (n ' % [!-~] % ' 대조 Latin1_General_BIN, @string)
@i > 0 동안
시작
는
세트 @chr 부분 문자열 (@string, @i, 1) =
세트 @string 바꾸기 (@string, @chr, nchar (유니코드 (@chr) +65248)) =
세트 @i = Patindex (n ' % [!-~] % ' 대조 Latin1_General_BIN, @string)
끝
는 @string
반환
끝
이동