2012-05-10 10 views
6

मैं अपनी साइट में यूनिकोड टेक्स्ट का उपयोग करना चाहता हूं। मेरे पास डेटा स्टोर करने के लिए डेटाबेस में nvarchar (अधिकतम) डेटा प्रकार है। जब मैं यूनिकोड टेक्स्ट को डेटाबेस में सहेजता हूं, तो यह ठीक काम करता है। हालांकि जब मैं कुछ एसक्यूएल ऑपरेशन करने की कोशिश करता हूं तो यूनिकोड टेक्स्ट को "?????" में बदल दिया जाता है उदाहरण के लिए, नीचेएसक्यूएल सर्वर 2008 में यूनिकोड टेक्स्ट का उपयोग कर

declare @unicodetext nvarchar(250) 
set @unicodetext='बन्द' 
select @unicodetext 

परिणाम

sqlunicode

इस के लिए समाधान क्या है क्वेरी? धन्यवाद

+0

डेटाबेस का डिफ़ॉल्ट मिलान क्या है पर उपलब्ध नहीं हैं? – Oded

+0

@ ओडेड डिफ़ॉल्ट collation SQL_Latin1_General_CP1_CI_AS – Paras

उत्तर

10

declare @unicodetext nvarchar(250) 
set @unicodetext = N'बन्द' 
select @unicodetext 

शायद तुम गौर किया है कि एसक्यूएल सर्वर जब आप के लिए DDL स्क्रिप्ट पैदा करने के लिए किसी भी उद्धृत स्ट्रिंग इनपुट करने के लिए N का उपयोग करता है की कोशिश करो।

+0

अच्छी जगह है। यूनिकोड टेक्स्ट को 'एन' संशोधक का उपयोग करने के रूप में योग्यता प्राप्त करने की आवश्यकता है। – Oded

1

आप एक मिलान कि चरित्र के इस प्रकार स्वीकार करता है या आप इस तरह अपने चयन पर मिलान खंड जोड़ सकते हैं करने के लिए अपने डेटाबेस मिलान सेट करने के लिए (गूगल ने मुझे बताया कि यह एक हिंदी चरित्र है)

declare @unicodetext nvarchar(250) 
set @unicodetext='बन्द' 
select @unicodetext 
COLLATE Indic_General_90_CI_AS 

कि अभ्यस्त काम है, लेकिन मैं SQL सर्वर 2005 के लिए बोल पर इस पाया:

4 हिन्दी मिलान SQL सर्वर 2005 में हटा दिया गया है क्योंकि Windows 2000 छँटाई तालिका इस एसक्यूएल सर्वर रिलीज में प्रयोग किया जाता है। कॉलम सर्वर में अभी भी मौजूद है, लेकिन इसे भविष्य में SQL सर्वर रिलीज़ में समर्थित नहीं किया जाएगा, और यह :: fn_helpcollations() में दिखाई नहीं देता है।

5 हिंदी और Lithuanian_Classic collations एसक्यूएल में पदावनत कर रहे हैं सर्वर 2005 ये collations अभी भी सर्वर में मौजूद हैं, लेकिन वे एक भविष्य एसक्यूएल सर्वर रिलीज में समर्थित नहीं किया जाएगा, और वे में दिखाई नहीं देती हैं :: fn_helpcollations()।

2008 के लिए

:

हिन्दी (भारत) - सर्वर स्तर

संबंधित मुद्दे