Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk: Database SQL SQL Server 2025 (17.x)
Azure SQL Database
Azure SQL Managed Instance
di Microsoft Fabric
UNISTR menyediakan dukungan untuk literal string Unicode dengan memungkinkan Anda menentukan nilai pengodean Karakter Unicode dalam string.
UNISTR mengembalikan karakter Unicode yang sesuai dengan ekspresi input, seperti yang didefinisikan oleh standar Unicode.
Urutan escape untuk karakter Unicode dapat ditentukan dalam bentuk \xxxx atau \+xxxxxx, di mana xxxx merupakan nilai codepoint UTF-16 yang valid, dan xxxxxx merupakan nilai codepoint Unicode yang valid. Anda dapat mencari nilai codepoint Unicode di Bagan Kode Unicode.
Dibandingkan dengan fungsi seperti NCHAR, UNISTR menyediakan cara yang lebih fleksibel dan komprehensif untuk menangani karakter Unicode. Misalnya, sementara NCHAR dapat mengonversi satu nilai Unicode menjadi karakter, UNISTR menangani beberapa nilai Unicode dan urutan escape, sehingga lebih mudah untuk bekerja dengan string kompleks yang menyertakan berbagai karakter Unicode.
Note
UNISTRtersedia di Azure SQL Managed Instance dengan kebijakan pembaruanSQL Server 2025 atau Always-up-to-date.
Syntax
UNISTR ( 'character_expression' [ , 'unicode_escape_character' ] )
Remarks
Manfaat utama UNISTR meliputi:
Dukungan untuk urutan escape Unicode:
UNISTRmemungkinkan Anda menentukan karakter Unicode menggunakan urutan escapeFleksibilitas dengan jenis input :mendukung berbagai jenis karakter sepertikarakter , nchar ,varchar , dannvarchar . Untuk jenis data char dan varchar , kolase harus menjadi kolase UTF-8 yang valid.Karakter escape kustom: Anda dapat menentukan karakter escape kustom untuk melakukan konversi nilai Unicode yang diperlukan menjadi kumpulan karakter string.
Operator || pipa tersedia di Azure SQL Managed Instance yang dikonfigurasi dengan kebijakan pembaruanSQL Server 2025 atau Always-up-to-date.
Dukungan halaman kode
Fungsi UNISTR tidak kompatibel dengan halaman kode warisan, yang berarti tidak mendukung kolase yang menggunakan set karakter non-Unicode. Kolase dengan halaman kode warisan ini dapat diidentifikasi menggunakan kueri berikut.
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 */
);
Untuk informasi selengkapnya, lihat Tabel Pemetaan Lampiran G DBCS/Unicode dan Halaman Kode H Lampiran .
Arguments
'character_expression'
Ekspresi jenis karakter apa pun, seperti karakter, nchar, varchar, atau nvarchar. Untuk jenis data char dan varchar , kolase harus menjadi kolase UTF-8 yang valid. Anda dapat menentukan nilai titik kode untai (karakter) atau nilai titik kode Unicode atau UTF-16 atau keduanya.
N'unicode_escape_character'
Satu karakter yang mewakili urutan escape Unicode yang ditentukan pengguna. Jika tidak disediakan, nilai defaultnya adalah \.
Tipe pengembalian
Nilai string yang panjang dan jenisnya bergantung pada jenis input.
Examples
A. Menggunakan fungsi UNISTR vs NCHAR
Contoh berikut semuanya menggunakan UNISTR fungsi untuk melakukan konversi nilai Unicode yang diperlukan menjadi kumpulan karakter string, untuk menampilkan karakter Unicode Tersenyum Wajah Dengan Mulut Terbuka. Kolase database harus merupakan kolase UTF-8 jika inputnya adalah jenis data karakter atau varchar .
Menggunakan UNISTR dan NCHAR:
SELECT N'Hello! ' + NCHAR(0xd83d) + NCHAR(0xde00);
Contoh sampel ini juga dapat ditulis:
SELECT UNISTR(N'Hello! \D83D\DE00');
SELECT UNISTR(N'Hello! \+01F603');
Berikut set hasilnya.
-----------
Hello! 😃
B. Menggunakan fungsi UNISTR dengan karakter escape yang ditentukan pengguna
Contoh berikut menggunakan UNISTR fungsi dengan karakter escape kustom untuk melakukan konversi Unicode yang diperlukan menjadi kumpulan karakter string.
SELECT UNISTR(N'ABC#00C0#0181#0187', '#');
Berikut set hasilnya.
-----------
ABCÀƁƇ
C. Gunakan fungsi UNISTR dengan menggabungkan literal string dan titik kode Unicode
Dalam contoh berikut, UNISTR digunakan dengan karakter escape yang ditentukan pengguna ($) dan jenis data varchar dengan kolab UTF-8. Ini menggabungkan literal string dengan nilai codepoint Unicode:
SELECT UNISTR('I $2665 Azure SQL.' COLLATE Latin1_General_100_CI_AS_KS_SC_UTF8, '$');
Berikut set hasilnya.
------------------
I ♥ Azure SQL.
D. Gunakan fungsi UNISTR untuk karakter di luar batas UTF-8
Jika Anda perlu menggunakan set karakter di luar UTF-8, Anda harus mengonversi urutan karakter ke UTF-8 menggunakan klausa COLLATE. Berikut adalah contohnya:
SELECT UNISTR('\306F\3044' COLLATE Latin1_General_100_BIN2_UTF8) AS Yes_in_Japanese_Hiragana;
Berikut set hasilnya.
Yes_in_Japanese_Hiragana
------------------------
はい