我正在尝试将阿拉伯字符串存储在我的数据库中。使用COLLATE Arabic_CI_AI_KS_WS
工作正常,但有些阿拉伯语记录缺少一些阿拉伯字母。我尝试了一些其他的解决方案,但结果相同。怎么解决?
表格结构:
CREATE TABLE [dbo].[Ayyat_Translation_Language_old_20131209] (
[Ayat_Translation_Language_ID] INT IDENTITY (1, 1) NOT NULL,
[Translation_Laanguage_ID] INT NULL,
[Juz_ID] INT NULL,
[Surah_ID] INT NOT NULL,
[Ayat_Description] VARCHAR (2000) COLLATE Arabic_CI_AI_KS_WS NOT NULL
)
插入代码:
string query = "insert into Ayyat_Translation_Language_old_20131209 values(null,null," + surah + ",N'" + verse + "')"; where verse contains Arabic contents.
并存储这样的数据(带问号):
?بِسْمِ اللَّهِ الرَّحْمَ?نِ الرَّحِيمِ
我已阅读该链接:store arabic in SQL database
答案 0 :(得分:7)
要存储unicode字符串数据,请使用NVARCHAR(2000)
而不是VARCHAR(2000)
列[Ayat_Description]
答案 1 :(得分:2)
这可能会有所帮助
CREATE TABLE [dbo].[Ayyat_Translation_Language_old_20131209] (
[Ayat_Translation_Language_ID] INT IDENTITY (1, 1) NOT NULL,
[Translation_Laanguage_ID] INT NULL,
[Juz_ID] INT NULL,
[Surah_ID] INT NOT NULL,
[Ayat_Description] NVARCHAR (2000) COLLATE Arabic_CI_AI_KS_WS NOT NULL
答案 2 :(得分:2)
你所要做的就是确保
column Data type
为nvarchar()
之后我插入阿拉伯语,即使使用Tashkeel
这在SQl server management studio 2012
答案 3 :(得分:1)
使用arabic collation
或use unicode(nvarchar(max))
这是一个示例表您的答案:
CREATE TABLE #t11
(
column1 NVARCHAR(100)
)
INSERT INTO #t11 VALUES(N'لا أتكلم العربية')
SELECT * FROM #t11