Ho provato a memorizzare la stringa araba nel database SQL 2008 ma è stata convertita in “punto interrogativo” perché? e cosa dovrei fare?
Devi scegliere un confronto arabo per le tue colonne varchar / char o usare 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'لا أتكلم العربية') SELECT * FROM #test
ritorna
col1 col2 col3 ------------------------------ ------------------------------ ------------------------------ ?? ????? ??????? لا أتكلم العربية لا أتكلم العربية
Utilizzare un elenco di regole di confronto in arabo
SELECT name, description FROM fn_helpcollations() WHERE name LIKE 'Arabic%'
Tutto quello che devi fare è assicurarti che
il column Data type
della column Data type
è nvarchar()
successivamente ho inserito l’arabo senza problemi
È ansible modificare le regole di confronto sul livello del database anziché modificarle per ogni colonna nel database:
USE master; GO ALTER DATABASE TestDB COLLATE Arabic_CI_AI; GO
inserire in valori tabella (colonna) ( N ‘xxx’).)
Dovresti inserire N prima di string per renderlo unicode
assicurati che tutte le tue tabelle e le tue colonne varchar
abbiano le regole di confronto di utf8_general_ci
Iti è facile da memorizzare la stringa araba in Oracle. Usa questo codice:
declare @P_CUSTOMER_NAME nchar(50) set @P_CUSTOMER_NAME2=N'أختبار'
Quanto sopra salverà in Oracle bene.