Использование командного файла для запуска скриптов с китайскими иероглифами приводит к искаженному тексту - PullRequest
1 голос
/ 17 января 2011

Я использую командный файл для запуска sqlcmd (Sql server 2008), который, в свою очередь, запускает различные сценарии sql. Скрипты sql вставляют азиатские и английские символы в базу данных. У меня проблема в том, что азиатские символы выглядят искаженными (в то время как английский выходит нормально.) Когда я вручную запускаю сценарии с китайскими иероглифами, они работают нормально. Кто-нибудь знает, как обойти эту проблему?

Ответы [ 2 ]

0 голосов
/ 20 апреля 2013

Возможно, уже слишком поздно, чтобы решить вашу проблему, но я столкнулся с подобной проблемой. Решением для меня было предоставить явную кодовую страницу для sqlcmd через параметр командной строки '-f':

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.

(Цитируется из комментария к блогу , который дал мне достаточно информации, чтобы собрать воедино решение.)

0 голосов
/ 27 января 2011

Как именно вы используете файлы?Если вы в настоящее время делаете

sqlcmd ... < input.sql

, тогда попробуйте либо изменить шрифт окна консоли на шрифт TrueType, либо изменить его на

sqlcmd ... -i input.sql

Я думаю, символы перетираются при перенаправлении вконсоль, которая поддерживает только набор символов OEM.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...