problemas permitir net mvc especiais con codificar codificacion caracteres caracter asp acentos c# asp.net database

net - permitir acentos c#



¿Qué significa N ''en un script SQL?(el usado antes de los caracteres en el script de inserción) (6)

El prefijo "N" significa Idioma Nacional en el estándar SQL-92, y se usa para representar caracteres Unicode.

Cada vez que pase datos de Unicode a SQL Server, debe prefijar la cadena de Unicode con N

Se utiliza cuando el tipo es de NVARCHAR , NCHAR o NTEXT .

Para obtener más información, consulte esto: ¿Por qué algunas cadenas SQL tienen un prefijo ''N''?

Generé un script sql como este,

INSERT [dbo].[TableName] ([Sno], [Name], [EmployeeId], [ProjectId], [Experience]) VALUES (1, N''Dave'', N''ESD157'', N''FD080'', 7)

Me pregunto qué significa exactamente N y cuál es su propósito aquí.

NOTA : Al buscar la respuesta, todo lo que puedo obtener es que N ''es un prefijo para el estándar de idioma nacional y para el uso de datos Unicode. Pero, honestamente, no puedo tener una idea clara sobre el funcionamiento exacto de N ''aquí. Apreciaré tu ayuda y por favor lo haré de una manera más comprensible . Gracias por adelantado.


Esto denota que la cadena posterior está en Unicode ( la N en realidad representa el conjunto de caracteres del idioma nacional ).

Lo que significa que está pasando un valor NCHAR , NVARCHAR o NTEXT , a diferencia de CHAR , VARCHAR o TEXT .


N es para especificar que es un valor de tipo de cadena.

[N]''tsql_string''

Es una cadena constante. tsql_string puede ser cualquier tipo de datos nvarchar o varchar. Si se incluye la N, la cadena se interpreta como tipo de datos nvarchar .


cada país tiene sus propias letras y símbolos específicos, por lo que una base de datos creada para inglés de EE. UU. no reconocerá el símbolo £ que tendría una base de datos de inglés en el Reino Unido;

Además, otros idiomas como el chino, el japonés, el hebreo y el árabe no utilizan caracteres latinos.

por lo tanto, cualquier persona que intente ingresar cualquier dato que no esté contenido en el conjunto de caracteres local fallará o se dañará si utiliza varchar, por lo que si existe la posibilidad más remota de que su base de datos deba admitir más de un conjunto de caracteres local tiene que usar el conjunto de caracteres del idioma nacionalizado, también conocido como unicode aka NChar, que permite que la nacionalidad de los conjuntos de caracteres se registre con el personaje. proporcionar soporte de texto internacional

Del mismo modo, al agregar el Prefijo N a una cadena se le indica a la base de datos que incluya el código de Nación y el código de caracteres


''abcd'' es un literal para una cadena de caracteres [var]char (o quizás text , pero ahora sería más común varchar(max) ): ocupa 4 bytes de memoria y usa la página de códigos para la que está configurado el servidor SQL. N''abcd'' es un literal para una cadena de caracteres n[var]char (o quizás ntext , pero sería preferible nvarchar(max) ), que ocupa 8 bytes de memoria utilizando UTF-16. Esto permite un uso internacional completo, y francamente n[var]char probablemente sea el predeterminado en la mayoría de los sistemas.


N se utiliza para especificar una cadena Unicode.

Aquí hay una buena discusión: ¿Por qué algunas cadenas SQL tienen un prefijo ''N''?

En su ejemplo, el prefijo N no es necesario porque los caracteres ASCII (con un valor inferior a 128) se asignan directamente a Unicode. Sin embargo, si desea insertar un nombre que no sea ASCII, se requerirá el prefijo N

INSERT [dbo].[TableName] ([Sno], [Name], [EmployeeId], [ProjectId], [Experience]) VALUES (1, N''Wāhi'', ''ESD157'', ''FD080'', 7)