Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir: SQL Server 2025 (17.x)
Microsoft Fabric'te
Azure SQL Veritabanı
Azure SQL Yönetilen Örneği SQL veritabanı
UNISTR, dizedeki karakterlerin Unicode kodlama değerini belirtmenize izin vererek Unicode dize değişmez değerleri için destek sağlar.
UNISTR, Unicode standardı tarafından tanımlandığı gibi giriş ifadesine karşılık gelen Unicode karakterlerini döndürür.
Unicode karakterinin kaçış dizisi \xxxx veya \+xxxxxxbiçiminde belirtilebilir; burada xxxx geçerli bir UTF-16 kod noktası değeridir ve xxxxxx geçerli bir Unicode kod noktası değeridir.
Unicode Kod GrafikleriUnicode kod noktası değerlerini arayabilirsiniz.
NCHARgibi işlevlerle karşılaştırıldığında UNISTR, Unicode karakterleri işlemek için daha esnek ve kapsamlı bir yol sağlar. Örneğin, NCHAR tek bir Unicode değerini karaktere dönüştürebileceğinden, UNISTR birden çok Unicode değeri ve kaçış dizisini işler ve çeşitli Unicode karakterleri içeren karmaşık dizelerle çalışmayı kolaylaştırır.
Note
UNISTR , SQL Server 2025 veya Always-up-to-dategüncelleştirme ilkesiyle Azure SQL Yönetilen Örneği'nde kullanılabilir.
Transact-SQL söz dizimi kuralları
Syntax
UNISTR ( 'character_expression' [ , 'unicode_escape_character' ] )
Remarks
UNISTR temel avantajları şunlardır:
Unicode kaçış dizileri için
Desteği: kaçış dizilerini kullanarak Unicode karakterleri belirtmenize olanak tanır Giriş türleriyle esneklik:
UNISTRchar, nchar, varcharve nvarchargibi çeşitli karakter türlerini destekler. karakter ve varchar veri türleri için harmanlama geçerli bir UTF-8 harmanlaması olmalıdır.Özel kaçış karakterleri
: Unicode değerlerinin gerekli dönüştürmesini bir dize karakter kümesine gerçekleştirmek için özel bir kaçış karakteri tanımlayabilirsiniz.
Kanallar || işleci, SQL Server 2025 veya Always-up-to-dategüncelleştirme ilkesiyle yapılandırılmış Azure SQL Yönetilen Örneği'nde kullanılabilir.
Kod sayfası desteği
UNISTR işlevi eski kod sayfalarıyla uyumlu değildir, yani Unicode olmayan karakter kümeleri kullanan harmanlamaları desteklemez. Eski kod sayfalarıyla bu harmanlamalar aşağıdaki sorgu kullanılarak tanımlanabilir.
SELECT DISTINCT p.language,
p.codepage
FROM sys.fn_helpcollations() AS c
CROSS APPLY (VALUES (LEFT(c.name, CHARINDEX('_', c.name) - 1),
COLLATIONPROPERTY(c.name, 'codepage'))) AS p(language, codepage)
WHERE p.codepage NOT IN (
0 /* Unicode Only collation */,
65001 /* UTF-8 code page */
);
Daha fazla bilgi için bkz. Ek G DBCS/Unicode Eşleme Tabloları
Arguments
'character_expression'
karakter, nchar, varcharveya nvarchargibi herhangi bir karakter türünün ifadesi.
karakter ve varchar veri türleri için harmanlama geçerli bir UTF-8 harmanlaması olmalıdır. Dize değişmez değerleri veya Unicode ya da UTF-16 kod noktası değerlerini ya da her ikisini de belirtebilirsiniz.
character_expression, varchar(max) ve nvarchar(max)kadar büyük bir uzunluğu destekler.
N'unicode_escape_character'
Kullanıcı tanımlı Unicode kaçış dizisini temsil eden tek bir karakter. Sağlanmazsa, varsayılan değer \olur.
Dönüş türleri
Uzunluğu ve türü giriş türlerine bağlı olan bir dize değeri.
Examples
A. UNISTR ve NCHAR işlevini kullanma
Aşağıdaki örneklerin UNISTR tümü, Unicode değerlerinin dize karakter kümesine gerekli dönüştürmesini gerçekleştirmek ve Açık Ağızlı Yüz Gülümseyen Unicode karakterini görüntülemek için işlevlerini kullanır. Girişin char veya varchar veri türlerinde olması durumunda veritabanı harmanlaması utf-8 harmanlama olmalıdır.
UNISTR ve NCHARkullanma:
SELECT N'Hello! ' + NCHAR(0xd83d) + NCHAR(0xde00);
Bu örnek örnek de yazılabilir:
SELECT UNISTR(N'Hello! \D83D\DE00');
SELECT UNISTR(N'Hello! \+01F603');
Sonuç kümesi aşağıdadır.
-----------
Hello! 😃
B. Kullanıcı tanımlı kaçış karakteriyle UNISTR işlevini kullanma
Aşağıdaki örnek, Unicode'un gerekli dönüştürmesini bir dize karakter kümesine gerçekleştirmek için özel bir kaçış karakteriyle UNISTR işlevini kullanır.
SELECT UNISTR(N'ABC#00C0#0181#0187', '#');
Sonuç kümesi aşağıdadır.
-----------
ABCÀƁƇ
C. Dize değişmez değerlerini ve Unicode kod noktalarını birleştirerek UNISTR işlevini kullanma
Aşağıdaki örnekte,
SELECT UNISTR('I $2665 Azure SQL.' COLLATE Latin1_General_100_CI_AS_KS_SC_UTF8, '$');
Sonuç kümesi aşağıdadır.
------------------
I ♥ Azure SQL.
D. UTF-8 sınırını aşan karakterler için UNISTR işlevini kullanma
UTF-8'in ötesinde bir karakter kümesi kullanmanız gerekiyorsa, COLLATE yan tümcesini kullanarak karakter dizisini UTF-8'e dönüştürmeniz gerekir. İşte bir örnek:
SELECT UNISTR('\306F\3044' COLLATE Latin1_General_100_BIN2_UTF8) AS Yes_in_Japanese_Hiragana;
Sonuç kümesi aşağıdadır.
Yes_in_Japanese_Hiragana
------------------------
はい
İlgili içerik
- ASCII (Transact-SQL)
- CHAR (Transact-SQL)
- NCHAR (Transact-SQL)
- Dize İşlevleri (Transact-SQL)
- harmanlama ve Unicode desteği