【问题标题】:Using batch file to run scripts with chinese characters results in garbled text使用批处理文件运行带有中文字符的脚本会导致文本乱码
【发布时间】:2015-08-21 17:29:33
【问题描述】:

我正在使用一个批处理文件来运行 sqlcmd (Sql server 2008),它又运行各种 sql 脚本。 sql 脚本将亚洲和英文字符插入数据库。我的问题是 亚洲字符出现乱码(而英文出现正常。)当我手动运行汉字脚本时,它们运行良好。有谁知道如何解决这个问题?

【问题讨论】:

    标签: sql-server database batch-file cjk


    【解决方案1】:

    解决您的问题可能为时已晚,但我遇到了类似的问题。我的解决方案是通过“-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,它为我提供了足够的信息来拼凑解决方案。)

    【讨论】:

      【解决方案2】:

      您究竟是如何使用这些文件的?如果你现在这样做

      sqlcmd ... < input.sql
      

      然后考虑将控制台窗口的字体更改为 TrueType 字体或将其更改为

      sqlcmd ... -i input.sql
      

      我猜这些字符在仅支持 OEM 字符集的控制台中重定向时会出现乱码。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-09-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-12-05
        相关资源
        最近更新 更多