sql - 从 OPENJSON SQL Server 检索特殊字符的问题
问题描述
我正在解析 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,因此在此之前,您必须手动完成。
推荐阅读
- python - Pandas 遍历 DataFrame 行对
- git - Github 和文件编码差异
- opentok - 如何在opentok的安全websocket消息中发送纯文本数据/ JSON数据而不是二进制(opcode2)
- php - websocket服务器停止或长时间重启后如何自动启动websocket服务器
- forms - 可能是一个简单的 PHP 编辑?
- c# - MVC Core 2.0“发布”操作返回空视图模型
- akka - 每 N 分钟运行一次,或者如果项目与平均值不同
- html - 如何使用 float css 属性呈现一个没有任何内容的 span 标签?
- vb.net - 在 vb 中设置为 DateTime 的数字
- mongodb - Mongoose如何过滤填充字段