[英]Convert text value in SQL Server from GB2312 to WINDOWS-1251
我在 SQL 服務器中有一個使用 GB2312 Chinese_PRC_CI_AS 編碼的列。 如何以 WINDOWS-1251 編碼轉換和保存文本? 我想在 SQL 服務器上進行查詢。 有小費嗎?
只需確保使用正確的排序規則聲明源和目標char
/ varchar
列,SQL 服務器可以為您處理轉換。
例如:
CREATE TABLE #GB2312_Test (
Example varchar(70) collate Chinese_PRC_CI_AS
);
CREATE TABLE #UCS2_Test (
Example nvarchar(70)
);
CREATE TABLE #CP1251_Test (
Example varchar(70) collate SQL_Latin1_General_CP1251_CI_AS
);
-- Insert data, note the N-prefix for National Characters...
INSERT INTO #GB2312_Test (Example) VALUES
(N'АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ'),
(N'абвгдеёжзийклмнопрстуфхцчшщъыьэюя');
INSERT INTO #UCS2_Test
SELECT Example FROM #GB2312_Test;
INSERT INTO #CP1251_Test
SELECT Example FROM #GB2312_Test;
-- Select data
SELECT Example, datalength(Example) as [Length]--, cast(Example as varbinary(max)) as [Bytes]
FROM #GB2312_Test;
SELECT Example, datalength(Example) as [Length]--, cast(Example as varbinary(max)) as [Bytes]
FROM #UCS2_Test;
SELECT Example, datalength(Example) as [Length]--, cast(Example as varbinary(max)) as [Bytes]
FROM #CP1251_Test;
輸出以下結果:
例子 | 長度 |
---|---|
АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ | 66 |
абвгдеёжзийклмнопрстуфхцчшщъыьэюя | 66 |
例子 | 長度 |
---|---|
АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ | 66 |
абвгдеёжзийклмнопрстуфхцчшщъыьэюя | 66 |
例子 | 長度 |
---|---|
АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ | 33 |
абвгдеёжзийклмнопрстуфхцчшщъыьэюя | 33 |
任何不能直接映射的字符要么被映射到它們最接近的 US-ASCII 等價物,要么被替換為?
(問號)字符。
您可以添加一個“數據轉換”組件,然后您可以 select 為它的代碼頁
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.