-- Creating Table
Create Table Test1
(
id Varchar(8000)
)
-- Inserting a record
Insert into Test1 Values ('我們的鋁製車架採用最新的合金材料所製成,不但外型輕巧、而且品質優良。為了達到強化效果,骨架另外經過焊接和高溫處理。創新的設計絕對能充分提升踏乘舒適感和單車性能。');
因为我已将id的数据类型定义为Varchar。数据存储为?????。
我必须使用NVARCHAR ..? VarChar和Nvarchar()之间的区别是什么。请解释一下UNIcode。
列类型nvarchar允许您存储Unicode字符,这几乎意味着几乎任何语言(包括现代语言和一些过时语言)的任何字符,以及大量符号。
also it is required to prefix N before your value. example Insert into Test1 Values (N'我们的铝制车架采用最新的合金材料所制成,不但外型轻巧、而且品质优良。为了达到强化效果,骨架另外经过焊接和高温处理。创新的设计绝对能充分提升踏乘舒适感和单车性能。'); or programatically use preparedstatement with bind values for inserting and updating natural characterset
Nvarchar支持UNICODE。是的。你需要将列作为nvarchar而不是varchar。
是的,您必须使用nvarchar或对所需的语言集使用排序规则。但是nvarchar是首选。 Goodgle可以告诉你这些东西意味着什么。
Varchar使用Windows-1252字符编码,它适用于所有实用的标准ASCII。
正如其他人所说,nvarchar允许存储unicode字符。
您可以从任一数据类型获取ASCII转换,如下所示:
IF OBJECT_ID('TEST1') IS NOT NULL
DROP TABLE TEST1
GO
CREATE TABLE TEST1(VARCHARTEST VARCHAR(8000), NVARCHARTEST NVARCHAR(4000))
-- Inserting a record
INSERT INTO TEST1 VALUES ('ABC','DEF')
SELECT
VARCHARTEST
,NVARCHARTEST
,ASCII(SUBSTRING(VARCHARTEST,1,1))
,ASCII(SUBSTRING(VARCHARTEST,2,1))
,ASCII(SUBSTRING(VARCHARTEST,3,1))
,ASCII(SUBSTRING(NVARCHARTEST,1,1))
,ASCII(SUBSTRING(NVARCHARTEST,2,1))
,ASCII(SUBSTRING(NVARCHARTEST,3,1))
FROM
TEST1
DROP TABLE TEST1
尽管你的数据库整理了。使用qazxsw poi存储UNICODE。将您的Unicode值嵌入qazxsw poi中
nvarchar
重要的是N前缀!
适用于我正在使用的MS SQL 2014。希望这可以帮助。