2008-11-27 7 views
0

Я существующий ASP.NET 2.0 веб-сайт, хранятся в Team Foundation Server 2005. Некоторые из страниц/управления кодируются как ANSI (в соответствии с Notepad ++) и заголовок Content-Type устанавливается в:Что может пойти не так, если я конвертирую файлы с кодировкой ANSI в UTF-8?

<meta http-equiv="Content-Type" content="text/html; charset=windows-1252"/> 

Я хотел бы изменить все страницы в UTF-8, и, следовательно, Content-Type заголовок:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> 

Другие, чем изменение мета-элемент, я предполагаю, что я также необходимо изменить кодировку всех файлов. Я могу сделать это в Notepad ++, хотя, если у кого-нибудь есть более быстрые методы, укажите их.

С какими проблемами я сталкиваюсь, когда речь заходит о слиянии/сравнении в TFS?

+0

Почему бы вам не попробовать и не вернуться, если есть проблема? – hop

+0

Потому что, если есть проблема, вся моя команда будет затронута, и крайний срок может проскользнуть. Я бы скорее узнал заранее. – tjrobinson

ответ

2

Это зависит от того, какая часть текста в вашей кодовой базе использует символы вне диапазона ASCII 0..127.

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

+0

Просто укажите, что это не просто кодовая база, о которой ему нужно беспокоиться; если в базе данных есть какой-либо динамический контент, который также необходимо преобразовать. –

+0

Это не повлияет на слияние/сравнение в TFS; однако, вы совершенно правы. составление страниц с использованием данных из БД и т. д. –

2

Я хотел бы написать сценарий Python

for fn in os.listdir(srcdir): 
    data = open(srcdir+"\\"+fn, "rb").read().decode("windows-1252") 
    data = data.replace("charset=windows-1252", "charset=utf-8") 
    open(srcdir+"\\"+fn, "wb").write(data.encode("utf-8")) 

Обновление набора символов предполагает, что эта конкретная строка не будет происходить в другом месте; вы можете сделать его более надежным путем проверки на более длинную строку, проверки, действительно ли существует старый текст в файле, делая правильную XML синтаксическим и т.д.

Вам может понадобиться поставить UTF-8 подпись перед данные с кодировкой UTF-8; вы найдете его в кодеках. BOM_UTF8

Я не знаю, какое следствие это изменение имеет для TFS.

0

Что-то полезное Я только что обнаружил, что вы можете щелкнуть правой кнопкой мыши файл в Source Control Explorer и выбрать «Свойства». Затем вы можете увидеть/изменить кодировку до TFS.

0

Выберите файл с символом выше диапазона 0-127 ASCII. Откройте это с помощью блокнота, выберите «Сохранить как» и выберите UTF-8 для кодирования. Затем проверьте, успешно ли преобразован символ.

Для автоматизации процедуры вы можете написать приложение, которое преобразует все файлы из ASCII в UTF-8, используя 1252 в качестве кодовой страницы. Если у вас нет символов выше 127, вам не нужно беспокоиться обо всех этих проблемах.

0

Это не обязательно так. Я не знаю об ASP.net, но мы делаем все наше php-кодирование здесь, в Ansi, и обслуживаем страницы в UTF8. Вся наша информация о базе данных также хранится в UTF8.