【问题标题】:I need dump table from SQL Server to csv in utf-8我需要从 SQL Server 转储表到 utf-8 中的 csv
【发布时间】:2017-01-10 05:22:26
【问题描述】:

这有效,但不适用于 utf-8:

sqlcmd -S Server -d DB -E -s, -W -i "C:\Localdata\test.sql" | findstr /V /C:"-" /B > "C:\Localdata\Test.csv"

有人愿意帮忙把它改成 utf-8 吗?

【问题讨论】:

    标签: sql-server csv utf-8 sqlcmd


    【解决方案1】:

    您可以将-u 开关用于Unicode 格式的输出文件。

    Docs

    【讨论】:

    • 谢谢! ‏  ‏  ‏
    【解决方案2】:

    -f 65001 添加到 sqlcmd 命令。 (或-f o:65001,如果你想要 UTF-8 输出,-f i:65001 用于 UTF-8 输入)

    【讨论】:

      【解决方案3】:

      但它不是 UTF-8。

      sqlcmd 自动识别 big-endian 和 little-endian Unicode 输入文件。如果指定了 -u 选项,则输出 将始终是 little-endian Unicode。

      因此,例如,它禁止使用 diff 工具来比较输出。

      要使用工具克服这种 M$ “舒适” - 使用 iconv

      iconv -t UTF-8 <sqlcmd.output.csv>
      

      在 Windows 上再次作为“舒适”М$ 产品 - 例如,您可以使用 Git 命令行工具包中的 iconv

      【讨论】:

        【解决方案4】:

        在调用sqlcmd之前在命令行或批处理文件中输入chcp 65001

        【讨论】:

          猜你喜欢
          • 2021-01-27
          • 2012-04-09
          • 2014-07-02
          • 2017-02-16
          • 2012-11-22
          • 2011-08-09
          • 2013-09-18
          • 2013-09-10
          • 2013-04-19
          相关资源
          最近更新 更多