将SQL Server中的表导出为UTF-8格式的CSV文件。

8
这个代码有效,但在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 吗?

4个回答

12

在sqlcmd命令中添加-f 65001。(如果您想要UTF-8输出,则使用-f o:65001,如果需要UTF-8输入,则使用-f i:65001


6
你可以使用-u开关来生成Unicode格式的输出文件。 文档

2
在调用sqlcmd之前,在命令行或批处理文件中键入chcp 65001以进行类型设置。

0

但它不是UTF-8。

sqlcmd自动识别大端和小端Unicode输入文件。如果指定了-u选项,则输出将始终为小端Unicode。

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

为了克服这种M$对工具的“舒适” - 使用iconv

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

在Windows上,作为“舒适”的微软产品,您可以使用Git命令行工具包中的iconv。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接