SQL 2008データベースにアラビア語の文字列を保存しようとしましたが、なぜ「疑問符」に変換されましたか?そして、私は何をすべきですか?
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%'
データベースの各列を変更する代わりに、データベースレベルで照合順序を変更できます。
USE master;
GO
ALTER DATABASE TestDB
COLLATE Arabic_CI_AI;
GO
テーブル(列)値に挿入([〜#〜] n [〜#〜] 'xxx')。)
あなたはそれを作るために文字列の前にNを置く必要がありますnicode
すべてのテーブルとvarchar
列にutf8_general_ci
の照合があることを確認してください
列のデータ型はnvarchar()です
CompanyMaster値に挿入(N '"+ txtCompNameAR.Text +"'、N '"+ txtCompAddressAR.Text +"'、 '"+ txtPh.Text +"')