2010-08-24 31 views
15

Tôi đã cố gắng lưu trữ chuỗi tiếng Ả Rập trong cơ sở dữ liệu SQL 2008 nhưng nó được chuyển thành "dấu chấm hỏi" tại sao? Và tôi nên làm gì ?cửa hàng arabic trong cơ sở dữ liệu SQL

+0

Có cơ sở dữ liệu mysql hoặc cơ sở dữ liệu sql của tôi? – Kashif

+0

sql 2008 cơ sở dữ liệu không sql của tôi xin lỗi vì lỗi cú pháp này – kartal

+0

Bạn đang cố gắng lưu trữ các ký tự tiếng Ả Rập trong cột loại '(var) char' hoặc' n (var) char'? –

Trả lời

43

Bạn cần phải chọn một đối chiếu tiếng Ả Rập cho varchar/cột char của bạn hoặc sử dụng 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 

Returns

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

Để xem danh sách của collations Ả Rập sử dụng

SELECT name, description 
FROM fn_helpcollations() 
WHERE name LIKE 'Arabic%' 
+0

cảm ơn bạn rất nhiều – kartal

+3

Bạn đang TUYỆT VỜI !! Đánh giá cao nó !! Tôi sẽ thêm câu trả lời của bạn vào blog của tôi. –

+0

sử dụng các kiểu dữ liệu Unicode như (nchar/nvarchar) là rất đủ, cảm ơn bạn rất nhiều Martin – newComer

-6

Iti rất dễ lưu trữ chuỗi tiếng Ả Rập trong Oracle. Sử dụng mã này:

declare @P_CUSTOMER_NAME nchar(50) 
set @P_CUSTOMER_NAME2=N'أختبار' 

Ở trên sẽ tiết kiệm được trong Oracle.

+1

Tại sao câu trả lời của bạn đề cập đến Oracle? – Ben

+2

@Akram, Vui lòng đọc câu hỏi. – Storm

1

Bạn có thể thay đổi collation vào mức độ cơ sở dữ liệu thay vì thay đổi cho mỗi cột trong cơ sở dữ liệu:.

USE master; 
GO 
ALTER DATABASE TestDB 
COLLATE Arabic_CI_AI; 
GO 
2

chèn vào bảng (cột) giá trị (N 'xxx'))

bạn nên đặt N trước chuỗi để làm cho nó unicode

6

Tất cả những gì bạn phải làm là để đảm bảo rằng

các column Data typenvarchar()

enter image description here

sau đó tôi chèn tiếng Ả Rập không có vấn đề

enter image description here

0

chắc chắn rằng tất cả các bảng của bạn và varchar cột có collation của utf8_general_ci

Các vấn đề liên quan