【发布时间】:2015-08-21 17:29:33
【问题描述】:
我正在使用一个批处理文件来运行 sqlcmd (Sql server 2008),它又运行各种 sql 脚本。 sql 脚本将亚洲和英文字符插入数据库。我的问题是 亚洲字符出现乱码(而英文出现正常。)当我手动运行汉字脚本时,它们运行良好。有谁知道如何解决这个问题?
【问题讨论】:
标签: sql-server database batch-file cjk
我正在使用一个批处理文件来运行 sqlcmd (Sql server 2008),它又运行各种 sql 脚本。 sql 脚本将亚洲和英文字符插入数据库。我的问题是 亚洲字符出现乱码(而英文出现正常。)当我手动运行汉字脚本时,它们运行良好。有谁知道如何解决这个问题?
【问题讨论】:
标签: sql-server database batch-file cjk
解决您的问题可能为时已晚,但我遇到了类似的问题。我的解决方案是通过“-f”命令行参数向 sqlcmd 提供显式代码页:
sqlcmd ... -i input.sql -f 65001
65001 是 UTF-8 的代码页。您需要确保文件实际保存在此代码页中,您可以在 Visual Studio 中执行此操作:
Try this:
1. Open your file in Visual Studio.
2. From the File menu, choose Advanced Save Options.
3. Select this encoding:
Unicode (UTF-8 without signature) – Codepage 65001
4. Save the file.
(引自blog post comment,它为我提供了足够的信息来拼凑解决方案。)
【讨论】:
您究竟是如何使用这些文件的?如果你现在这样做
sqlcmd ... < input.sql
然后考虑将控制台窗口的字体更改为 TrueType 字体或将其更改为
sqlcmd ... -i input.sql
我猜这些字符在仅支持 OEM 字符集的控制台中重定向时会出现乱码。
【讨论】: