osql执行SQL脚本内容包含中文时出现乱码问题的解决办法
本机环境:Windows2003 + SQL2008R2 + 包含中文的SQL脚本文件
经验小结:SQL脚本文件编码最好是存成GB2312的,而不是UTF-8
开始--运行--CMD
C:\Documents and Settings\Administrator>
osql -U sa -P 123456 -S 192.168.1.28 -d testdb -r -e -i "C:\sp_Insert_User.sql" -o "c:\ErrorInfo.txt"
出现一堆错误:
1> 2> 3> [SQL Server Native Client 10.0]COUNT 字段不正确或语法错误
锘?-濡傛灉瀛樺偍杩囩▼宸插瓨鍦ㄥ垯鍏堝垹闄?if exists
解决办法:
运行SQL Server Management Studio后打开"C:\sp_Insert_User.sql"SQL脚本文件,选择“另存为”编码为GB2312。
重新运行OSQL命令
C:\Documents and Settings\Administrator>
osql -U sa -P 123456 -S 192.168.1.28 -d testdb -r -e -i "C:\sp_Insert_User.sql" -o "c:\ErrorInfo.txt"
运行成功
其它解决办法如"改变MS-DOS代码页"尝试过不起作用:
C:\Documents and Settings\Administrator>chcp 936
C:\Documents and Settings\Administrator>chcp 65001