今天在做項目的過程中遇到如标題的問題,情況如下圖:
資料庫使用的是SQL Server2012版本,建立表的腳本如下:
CREATE TABLE [dbo].[Type]
(
[TypeId] INT NOT NULL PRIMARY KEY,
[TypeName] NVARCHAR(50)NOT NULL,
[Description] NVARCHAR(255) NULL,
[CategoryId] INT NOT NULL DEFAULT 0
)
根據一些相關文檔提到的解決方案,需要包含中文資料的字段,一般定義為nchar/nvarchar資料類型。但實際應用中,即使這樣定義了資料庫表字段,也會産生亂碼。此時嘗試了另一種解決方案:即添加中文資料時, 在插入的中文字元前添加大寫字母N,腳本示例如下:
MERGE dbo.[Type] AS Target
USING (
SELECT 0, N'其它', N'未定義消費類别', 0
UNION
SELECT 1, N'主食', N'米、面、油、鹽等', 1
SELECT 2, N'副食', N'肉、菜、蛋、熟食等' , 1
SELECT 3, N'餐飲', N'含堂食外送', 1
SELECT 4, N'飲料', '', 2
經過驗證,應用此方案可以解決中文亂碼問題。