Compartir a través de


UNISTR (Transact-SQL)

Se aplica a: Azure SQL Database

UNISTR proporciona compatibilidad con literales de cadena Unicode al permitirle especificar el valor de codificación Unicode de caracteres en la cadena. UNISTR devuelve los caracteres Unicode, tal como se define en el estándar Unicode, para la expresión de entrada.

La secuencia de escape de un carácter Unicode se puede especificar en forma de \xxxx o \+xxxxxx, donde xxxx es un valor de punto de código UTF-16 válido y xxxxxx es un valor de punto de código Unicode válido. Puede buscar valores de punto de código Unicode en los gráficos de código Unicode.

Convenciones de sintaxis de Transact-SQL

Sintaxis

UNISTR ( 'character_expression' [ , 'unicode_escape_character' ] )

Argumentos

"character_expression"

Expresión de cualquier tipo de carácter, como char, nchar, varchar o nvarchar. Para los tipos de datos char y varchar , la intercalación debe ser una intercalación UTF-8 válida.

N'unicode_escape_character'

Carácter único que representa una secuencia de escape Unicode definida por el usuario. Si no se proporciona, el valor predeterminado es \.

Tipos de valores devueltos

Valor de cadena cuya longitud y tipo dependen de los tipos de entrada.

Ejemplos

A Uso de UNISTR frente a la función NCHAR

En los ejemplos siguientes se usan todas las UNISTR funciones para realizar la conversión necesaria de los valores Unicode en un juego de caracteres de cadena, para mostrar el carácter unicode Cara sonriente con boca abierta. La intercalación de base de datos debe ser una intercalación UTF-8 si la entrada es de tipos de datos char o varchar .

Mediante UNISTR y NCHAR:

SELECT N'Hello! ' + NCHAR(0xd83d) + NCHAR(0xde00);

Este ejemplo también se puede escribir:

SELECT UNISTR(N'Hello! \D83D\DE00');

SELECT UNISTR(N'Hello! \+01F603');

Este es el conjunto de resultados.

-----------
Hello! 😃

B. Uso de la función UNISTR con el carácter de escape definido por el usuario

En el ejemplo siguiente se usa la UNISTR función con un carácter de escape personalizado para realizar la conversión necesaria de Unicode en un conjunto de caracteres de cadena.

SELECT UNISTR(N'ABC#00C0#0181#0187', '#');

Este es el conjunto de resultados.

-----------
ABCÀƁƇ