【发布时间】: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
这有效,但不适用于 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
您可以将-u 开关用于Unicode 格式的输出文件。
【讨论】:
将-f 65001 添加到 sqlcmd 命令。 (或-f o:65001,如果你想要 UTF-8 输出,-f i:65001 用于 UTF-8 输入)
【讨论】:
但它不是 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。
【讨论】:
在调用sqlcmd之前在命令行或批处理文件中输入chcp 65001
【讨论】: