【发布时间】:2016-07-29 15:16:16
【问题描述】:
我一直在尝试使用来自 SQL 查询的一些数据向 JSON Web 服务提供数据。我遇到的问题是数据以 UTF16 格式存储在 SQL Server 数据库中,我必须将其作为 UTF8 格式提供给 Web 服务。
我想在 SQL 查询运行时使用我的 SQL 查询来转换数据。我一直在阅读各种论坛,并认为没有一种特别简单的方法可以进行转换。
例如,我有诸如 ÖSTLUND 之类的名称,据我所知,它是有效的 Unicode/Windows 代码页 1253。
我认为 UFT8 更像 Windows 代码页 1252 是否正确?
我尝试过各种版本的 Cast 和 Collate,但我正在努力寻找哪种方式可以给我最好的答案。
(cast(SURNAME as varchar(100)) COLLATE SQL_Latin1_General_Pref_CP1_CI_AS)
或
(cast(SURNANE as varchar(100)) COLLATE Latin1_General_100_CI_AS_KS_WS_SC)
有没有人有任何建议如何最好地做到这一点? Cast 和 Collate 是否可以做到这一点?
更新:
该应用程序是用 Uniface 编写的旧应用程序。应用程序服务器正在运行 SQL 脚本以响应数据库字段更改。然后,它使用 SQL 输出填充 Web 服务帖子的有效负载。使 SQL 的输出符合 Web 服务的 JSON。
【问题讨论】:
-
我怀疑这可能,
sql-server不支持 UTF8。也许与 CLR... -
如果可能的话,我会在您的 Web 服务层中进行必要的覆盖。 UTF-8 不是代码页 1252
-
感谢 Alan,不幸的是,链接到数据库的 Web 服务相当愚蠢,它只是向外发布消息而不是进行任何处理,因此我需要在字符到达 Web 服务之前对其进行转换。
-
Web 服务现在如何进行查询以从数据库中获取数据?需要在发生通信的地方进行转换。
-
该应用程序是用 Uniface 编写的旧应用程序。应用程序服务器正在运行 SQL 脚本以响应数据库字段更改。然后,它使用 SQL 输出填充 Web 服务帖子的有效负载。使 SQL 的输出符合 Web 服务的 JSON
标签: sql sql-server json utf-8 utf-16