Как я могу исправить неправильную кодировку текста? - PullRequest
0 голосов
/ 06 июня 2018

Немного фона.У нас работают ужасные системы, разработанные H1B.Они представляют собой 50% SQL, 50% JS, 7 уровней эталонного эталонного шаблона между ними, и находятся в постоянном аварийном состоянии.Некоторые развертывания занимают часы, потому что каждый раз они проталкивают буквально сотни сценариев БД.

В качестве краткосрочного исправления я написал программу для прокачки каталога сценариев через объект SqlCommand.

У меня проблема в том, что они вставляют несовместимые кодовые страницы вместе.Файл выглядит как ascii, но содержит несколько строк с пробелами в кодировке Unicode.Когда он читает и выполняет, он выдает ошибки с символами мусора.Я переключился с автоопределения на кодировку по умолчанию, которая работала примерно за день до того, как они сделали что-то другое, и он снова начал выдавать ошибки.

SQL Management Studio также помечает эти странные символы, но все же удается выполнить.Есть ли способ заставить текст как-то "нормализоваться"?Или форсировать это через то, что делает SSMS?

1 Ответ

0 голосов
/ 06 июня 2018

Если фактическое содержимое этих файлов должно находиться в 7-битном диапазоне набора символов ASCII, то вы можете попробовать прочитать файлы в двоичном виде.Вы захотите удалить любой начальный Unicode BOM , с которым вы столкнетесь, а затем пропустить любые байты, которые равны 0 (которые будут из файлов, кодируемых как UTF16).Затем передайте его в декодер и заявите, что это ASCII или UTF-8.

Если набор символов шире, чем 7-битный диапазон ASCII, то я думаю, что все ставки сняты, и вам нужно решить реальныепроблема, которая звучит так, как будто это проблема людей, а не техническая проблема.

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