【问题标题】:Unicode in sqsh connecting to MSSQL (or alternatives)sqsh 中的 Unicode 连接到 MSSQL(或替代方案)
【发布时间】:2011-05-31 12:39:15
【问题描述】:

我有一个 MSSQL 数据库,其中包含 Unicode (utf8) 数据。我的工作站是 linux(目前是 Ubuntu),并且正在寻找一种与 mssql 数据库一起工作的工具,我发现了 SQSH。 问题是 - 当我在 sqsh 控制台中选择数据时,我得到的是乱码而不是 unicode 字符。使用开关“-J utf8”或“-J utf-8”并没有改变任何东西。

问题是——如何设置 sqsh 来处理 utf-8 数据?

如果不可能,您是否知道任何可用于 linux 的替代工具来处理填充了 utf-8 数据的 mssql 数据库。我需要执行各种 T-SQL,运行预先准备好的 SQL 脚本文件,并输出结果以供以后处理。也可以使用良好的 GUI(开源),不仅限于 shell 客户端。

【问题讨论】:

  • 考虑到您说您在 SQL Server 中存储 utf-8 数据,我假设您使用的是 SQL Server 2019 预览版?
  • Unicode 在 Windows 和 SQL Server 上表示 UTF16。 Unicode 文本存储在nvarchar 字段中。它可以正常工作 - SO 是一个使用 SQL Server 的 ASP.NET 网站。仅在最新版本中为批量导入/导出添加了 UTF8 支持。 UTF8 作为 varchar 编码添加到 SQL Server 2019 中,目前处于预览阶段
  • 你试过mssql-cliAzure Data Studio吗?不幸的名字,但那是 SQL Server 的跨平台开发人员 IDE

标签: sql-server linux utf-8 sqsh


【解决方案1】:

你在使用 freetds 和 sqsh 吗?如果是,请编辑您的 freetds.conf 以设置字符集。

http://www.freetds.org/userguide/localization.htm

【讨论】:

    【解决方案2】:

    使用Azure Data Studio 避免数据故障排除问题。它是 Linux 的一个很好的 SSMS 替代品。

    【讨论】:

      【解决方案3】:

      如果您需要命令行工具,我建议使用来自 mssql-tools 的官方 sqlcmd。 它适用于包括 Ubuntu 在内的所有主要 Linux 发行版。

      Connecting with sqlcmd


      另一个shell工具是mssql-cli

      特点

      Mssql-cli 是一个新的交互式命令行工具,它提供 在终端环境中对 sqlcmd 进行了以下主要增强:

      • T-SQL 智能感知
      • 语法高亮
      • 查询结果的漂亮格式,包括垂直格式
      • 多行编辑模式
      • 配置文件支持

      【讨论】:

        【解决方案4】:

        我遇到了同样的问题,它似乎与字符编码无关,但问题是脚本中有控制字符,不可打印字符。

        我从 sql 脚本中删除了它们,一切正常。

        【讨论】:

          猜你喜欢
          • 2013-02-13
          • 2021-04-21
          • 1970-01-01
          • 1970-01-01
          • 2011-11-05
          • 2018-06-08
          • 2015-07-08
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多