从OPENJSON SQL Server检索特殊字符时出现的问题

从OPENJSON SQL Server检索特殊字符时出现的问题,sql,json,sql-server,Sql,Json,Sql Server,我正在解析一个JSON文件中的数据,当我最终加载到我的表中时遇到了问题,数据中有特殊字符,如ñ,则显示为Ã 代码在NVARCHAR中,我不知道为什么它不能正确地运行 INSERT INTO @recordsInfo ( messageId, messageType, messageVariation, windowEnvelope, recipientFirstName, recipientL

我正在解析一个JSON文件中的数据,当我最终加载到我的表中时遇到了问题,数据中有特殊字符,如ñ,则显示为Ã

代码在NVARCHAR中,我不知道为什么它不能正确地运行

INSERT INTO @recordsInfo
    (
        messageId,
        messageType,
        messageVariation,
        windowEnvelope,
        recipientFirstName,
        recipientLastName,
        recipientAddressLine1,
        recipientAddressLine2,
        recipientCity,
        recipientState,
        recipientZip,
        recipientZipSuffix
    )
    SELECT messageId,
           messageType,
           messageVariation,
           windowEnvelope,
           recipientFirstName,
           recipientLastName,
           recipientAddressLine1,
           recipientAddressLine2,
           recipientCity,
           recipientState,
           recipientZip,
           recipientZipSuffix
    FROM
        OPENJSON(@ValueR)
        WITH
        (
            messageId NVARCHAR(100),
            messageType NVARCHAR(100) '$.messageDetails.messageType',
            messageVariation NVARCHAR(100) '$.messageDetails.messageVariation',
            windowEnvelope NVARCHAR(100) '$.messageDetails.windowEnvelope',
            recipientFirstName NVARCHAR(100) '$."shippingDetails"."recipientFirstName"',
            recipientLastName NVARCHAR(100) '$."shippingDetails"."recipientLastName"',
            recipientAddressLine1 NVARCHAR(1000) '$.shippingDetails.recipientAddressLine1',
            recipientAddressLine2 NVARCHAR(100) '$.shippingDetails.recipientAddressLine2',
            recipientCity NVARCHAR(100) '$.shippingDetails.recipientCity',
            recipientState NVARCHAR(100) '$.shippingDetails.recipientState',
            recipientZip NVARCHAR(100) '$.shippingDetails.recipientZip',
            recipientZipSuffix NVARCHAR(100) '$.shippingDetails.recipientZipSuffix'
        );

DECLARE @recordsInfo TABLE
(
    RecID INT IDENTITY(1, 1),
    messageId NVARCHAR(100),
    messageType NVARCHAR(100),
    messageVariation NVARCHAR(100),
    windowEnvelope NVARCHAR(100),
    recipientFirstName NVARCHAR(100),
    recipientLastName NVARCHAR(100),
    recipientAddressLine1 NVARCHAR(1000),
    recipientAddressLine2 NVARCHAR(100),
    recipientCity NVARCHAR(100),
    recipientState NVARCHAR(100),
    recipientZip NVARCHAR(100),
    recipientZipSuffix NVARCHAR(100)
);

RecipientFirstName是我正在查看的主要名称,JSON通常是UTF-8。只有在2019版中,SQL Server才能理解UTF-8,因此在此之前,您必须手动执行此操作


该表也是NVARCHAR吗?@JacobH是的,我相信您能提供分配给@ValueR的内容吗?