今天在做項目的過程中遇到如標題的問題,情況如下圖:
數據庫使用的是SQLServer2012版本,創建表的腳本如下:
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 TargetUSING (SELECT 0, N'其它', N'未定義消費類別', 0UNIONSELECT 1, N'主食', N'米、面、油、鹽等', 1UNIONSELECT 2, N'副食', N'肉、菜、蛋、熟食等' , 1UNIONSELECT 3, N'餐飲', N'含堂食外送', 1UNIONSELECT 4, N'飲料', '', 2
經過驗證,應用此方案可以解決中文亂碼問題。
新聞熱點
疑難解答