web-dev-qa-db-ja.com

SQLデータベースにアラビア語を保存する

SQL 2008データベースにアラビア語の文字列を保存しようとしましたが、なぜ「疑問符」に変換されましたか?そして、私は何をすべきですか?

24
kartal

Varchar/char列にアラビア語の照合を選択するか、Unicode(nchar/nvarchar)を使用する必要があります

CREATE TABLE #test
(
col1 VARCHAR(100) COLLATE Latin1_General_100_CI_AI,
col2 VARCHAR(100) COLLATE Arabic_CI_AI_KS_WS,
col3 NVARCHAR(100)
)
INSERT INTO #test VALUES(N'لا أتكلم العربية',N'لا أتكلم العربية',N'لا أتكلم العربية')

上記のinsertステートメントの値の前のNに注意してください。言及しない場合、システムは値をNVarcharではなくVarcharとして扱います。

SELECT * FROM #test

戻り値

col1                           col2                           col3
------------------------------ ------------------------------ ------------------------------
?? ????? ???????               لا أتكلم العربية               لا أتكلم العربية

アラビア語の照合順序のリストを表示するには

SELECT name, description 
FROM fn_helpcollations() 
WHERE name LIKE 'Arabic%'
53
Martin Smith

あなたがしなければならないのは、それを確認することです

_column Data type_はnvarchar()です

enter image description here

その後、問題なくアラビア語を挿入しました

enter image description here

11

データベースの各列を変更する代わりに、データベースレベルで照合順序を変更できます。

USE master;
GO
ALTER DATABASE TestDB
COLLATE Arabic_CI_AI;
GO
5
A Ghazal

テーブル(列)値に挿入([〜#〜] n [〜#〜] 'xxx')。)

あなたはそれを作るために文字列の前にNを置く必要がありますnicode

3
nazim hatipoglu

すべてのテーブルとvarchar列にutf8_general_ciの照合があることを確認してください

0

列のデータ型はnvarchar()です

CompanyMaster値に挿入(N '"+ txtCompNameAR.Text +"'、N '"+ txtCompAddressAR.Text +"'、 '"+ txtPh.Text +"')

0
Pradeepkumar Cb